特定の固定ページをトップページなどに表示させる

2014/07/11
例えばトップページにプロフィールやごあいさつなどをパーツとして表示させたい場合、テーマファイルに直接書く方法もありますが、固定ページにしておけば編集が簡単なので便利です。特定の固定ページをトップページなど任意の場所に表示させたい場合は以下のようにします。

<?php
	$page_id = 16; //ページID
	$content = get_page($page_id);
	echo $content->post_title;
	echo $content->post_content;
?>

「get_page」は非推奨らしいので「get_post」を使った方がよいそうです。

<?php
	$page_id = 16; //ページID
	$content = get_post($page_id);
	echo $content->post_title;
	echo $content->post_content;
?>

しかしこれでは本文の中のHTMLタグが無効になって、思うような表示になってくれません。
以下のようにすれば、HTMLタグが有効になります。

<?php
	$page_id = 16; //ページID
	$content = get_post($page_id,'OBJECT');
	$content_body = apply_filters('the_content',$content->post_content);
	echo $content->post_title;
	echo $content_body;
?>

スラッグを指定して表示させる場合はこんな感じでしょうか。

<?php
	$page_slug = product; //ページスラッグ
	$content = get_page_by_path($page_slug);
	$content_body = apply_filters('the_content',$content->post_content);
	echo $content->post_title;
	echo $content_body";
?>

編集リンクをつける場合は

<?php edit_post_link('編集', '<div class="edit">', '</div>', $page_id); ?>