ショウジンブログ on Hatena

“お芝居をしないと、この社会では異邦人として扱われるほかない”

固定ページの内容を任意のページに表示する@WordPress

WordPressの固定ページの内容を別のページに表示したい場合がたまにあります。

その場合には、まずそのための固定ページを作成し、編集エリアに内容を入力します。

f:id:showjinx:20160528151807p:plain

このとき、この固定ページのIDを控えておきます。

ページIDは編集画面を開いているときのブラウザのURLから確認します。

f:id:showjinx:20160528151942p:plain

この場合、post.php?post=6の「6」がページIDになります。

そして、以下のコードの$page_idの部分にこのIDを入力し、このコードを「固定ページの内容を表示させたい」テンプレートに記述します。

<?php
$page_id = 6; // 固定ページIDを入力
$content = get_page($page_id);
echo $content->post_content;
?>

以下の画面はトップページ(テンプレートはindex.php)に上記コードを埋め込んだものです。HTMLタグが有効になっています。

f:id:showjinx:20160528152311p:plain

HTMLタグをエスケープ(無効化)した上で改行を有効にする場合は以下のコードになります。

<?php
$page_id = 6; // 固定ページIDを入力
$content = get_page($page_id);
echo nl2br( esc_html( $content->post_content ) );
?>

編集エリアのstrong, p, a要素は実体参照されてHTML要素としては無効化(ただの文字列)、改行はbr要素に置換されて出力されています。(編集画面で二回改行したら二つ、br要素が出力される)

f:id:showjinx:20160528153212p:plain