現在のページの子ページ本文を表示する

テーマ

wptheme_pagecont_child

WordPressの固定ページでは、以下のように親子関係を指定することができます。

親ページ
 ├ 子ページ1
 ├ 子ページ2
 └ 子ページ3

前回(現在のページの子ページ一覧を取得する)では、
子ページ一覧リンクを表示する方法について紹介しましたが、
今回は現在のページ内で子ページの本文を表示する方法を紹介します。

テンプレートタグ get_posts を使い、子ページ記事を取得します。

get_posts 記事を取得するテンプレートタグです。
<?php

$child_posts = get_posts('numberposts=-1&order=ASC&orderby=post_title&post_type=page&post_parent=' . $post->ID);

if ( $child_posts ):
	foreach ( $child_posts as $child ):
		$child_title   = apply_filters('the_title', $child->post_title);
		$child_content = get_extended($child->post_content);
		$child_content = apply_filters('the_content', $child_content['main']);
?>

<h2><?php echo $child_title; ?></h2>
<div class="entry">
	<?php echo $child_content; ?>
</div>

<?php endforeach;
endif;

?>

現在のページを親ページとして条件にいれることで、子ページの内容が取得できます。
ソート順などはお好みで。

ページの本文が長くなる場合に、見出しごとに子ページとして投稿して
上のソースのように表示させれば記事の管理も楽になりますね。

テーマ

関連記事