前回、「WordPressで指定した固定ページを読み込む方法」を書いたのですが今回は親ページを指定した子ページを読み込んでみようと思い、試してみたのでメモしときます
[ads_center]
get_postsとget_pageを使って取得する
まずは配列に必要なパラメータを格納します。そしてget_postsの引数にその配列を渡せば$post->IDで子ページのidを取得できるので、今度はそれをget_pageの引数にforeachを使って渡していきます。あとは必要な情報を出力できるようになります。
<?php $args = array( 'post_parent' => 取得したい親ページid, 'post_type' => 'page', 'order' => 'ASC', ); $posts = get_posts($args); foreach($posts as $post) { $post_id = $post->ID; $page_id = get_page($post_id); echo '<h3>'; the_title(); echo '</h3>'; echo '<p>'; echo the_excerpt(); echo '</p>'; echo '<a href="'; echo the_permalink(); echo '">続きを読む</a>'; }; ?>
これでタイトル、抜粋、各ページへのリンクが出力されます。抜粋ではなくて本文を表示したい場合は以下のようにsetup_postdata()に引数として $post配列を渡すと出力できるようになります。
foreach($posts as $post) { setup_postdata($post); $post_id = $post->ID; $page_id = get_page($post_id); the_content();
これで本文も表示できるようになります。get_postsではなくてget_pages()だけを使っても似たような感じで出力できるのですが、使い分けるところがよくわかんないのでとりあえず今回はget_postsを使って取得してみました。