指定した親ページの子ページを取得してみる

前回、「WordPressで指定した固定ページを読み込む方法」を書いたのですが今回は親ページを指定した子ページを読み込んでみようと思い、試してみたのでメモしときます

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を使って取得してみました。

スポンサーリンク

スポンサーリンク

アクセスランキング

Tags

Archives