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()