Wordpressで全ての親ページの情報を取得する方法
- 投稿日:2019/04/02
- Wordpress
Wordpressでサイトを構築するとき、階層が深いサイトの場合に活用できそうな関数をご紹介します。
全ての親ページの投稿内容をオブジェクトで取得する方法
function.phpに下記のように記載してください。
function.php記述例
//全ての親ページをobjectで取得
function get_parent_posts($post_id) {
$post = get_post($post_id);
if(empty($post_id) or $post->post_parent == '0') {
return false;
}
while ($post_id){
$post = get_post($post->post_parent);
$result[] = $post;
$post_id = $post->post_parent;
}
$result = array_reverse( $result );
return $result;
}
例:全ての親ページのタイトルを取得して表示する方法
テーマ内で使用する時は、テンプレートに
$page_parents = get_parent_posts($post->ID);
if ($page_parents){
echo '<ul>';
foreach ($page_parents as $page) {
echo '<li>'.$page->post_title.'</li>';
}
echo '</ul>';
}
のように記載すればOKです。
全ての親ページのIDを配列で取得する方法
すべての親ページのIDがあれば足りる場合は、IDを配列で取得できる下記の関数を使っても便利です。
Wordpress関数リファレンス|get_post_ancestors()
この記事が気に入ったらシェアしてください