どもです。
週明けからいやに眠いなぁと思っていたら貧血がやってきた餅。です。
ところで、貧血と低血圧は症状が似ていても原因は全く違うそうですね。
僕はどっちなんだろう。貧血貧血言ってるけど、低血圧の方のような気が。
そんなことよりWordPress。
「違うテンプレート上で固定ページの内容を表示させたい」って結構よくあることかと。
例えば、category.phpにカテゴリの概要を表示させたいけど、
descriptionでは勝手が効かないから固定ページで編集したい、とか。
例えば、トップページにサイトの概要を乗っけたいけど、
テンプレ直書きじゃなくて固定ページを使いたい、とか。
最近、そういう案件が増えたので、ここで一度やり方をまとめておくことにします。
Menu
Ⅰページ情報の取得について
①ページIDからページ情報を取得する場合
$post = get_page( ページID );
②ページのスラッグから情報を取得する場合
$post = get_page_by_path( 'スラッグ' );
Ⅱ取得した情報の表示方法について
①簡単に、指定した情報だけ欲しい場合
if( isset( $post ) ) {
echo $post->post_title;
echo wpautop($post->post_content);
<?php } ?>
if( isset( $post ) )は「$postにnull以外が入っているとき(または$postが未定義のとき)」の条件分岐です。
なお、post_contentをechoする場合は、基本的にはwpautopを介すべきです。
②the_title()などの表示関数を使いたい場合
if( isset( $post ) ) {
setup_postdata($post); ?>
<?php if(has_post_thumbnail()) : the_post_thumbnail(); endif ?>
<?php the_content(); ?>
<?php } ?>
setup_postdata($post)を経ることで、the_title()などの表示関数が使えます。
複雑な表示方法を使いたい場合は、こちらで行うと良いでしょう。