スラッグで指定した固定記事の本文のみを出力するWordPressの関数を作ってみた。

やりたかったこと

WordPressのサイトのトップページの一部に特定の固定ページの本文を表示させる。
その固定ページに、アイキャッチ画像とか動画とかを貼り付けたりするという用途を想定。
クライアントは特定の固定ページの内容を修正することで、その項目に表示するものを自由に変更することができるという仕掛け。
それでいて、コーディングも楽にやりたいので、表示するページの指定はIDではなくスラッグを使いたい。
そうすれば、新規のサイトを作るたびに投稿したもののIDを調べる必要はなくなるし、クライアントがうっかり記事を消した場合でも、新しいページに元のスラッグを付けてあげれば復旧できる。テンプレートを修正する必要がない。(もちろん、パーマリンク設定は、数字やidベースではなく、記事タイトルとかカスタムで、あとから自分で修正できるというというのが大前提。)


そんな中見つけたのが、WordPressで投稿スラッグを指定して特定の記事だけを表示させる関数を作ってみたという記事。なるほど、記事でできるのなら、固定ページでも同じことができるんじゃないかと。

で、作ったのがこれ。

<?php 
function my_page_content($value1) {
	$mypage_query = new WP_Query(array('pagename' => $value1 ));
	if ($mypage_query -> have_posts()):  $mypage_query -> the_post();
		the_content();
	endif;
}
?>

で、index.phpとかのテンプレートには次の関数を書く。

<?php my_page_content('固定ページのスラッグ') ;?>

でまあ、望みどおり、出力させたい固定ページのスラッグを入れて書いたら、そのページの本文がちゃんと表示された。

コードの内容について

恥ずかしいくらい簡単なコードですが、まあ、初級者レベル向けということで。
また、一つのページしか使わないのに、new WP_Queryとか使うかなぁ?なんてことをぼんやりと考えております。他にいい関数があれば教えてください。
まあ、今回はthe_contents()しか使ってませんが、タイトルとかURLとかいろいろ引っ張り出せるので、応用が利くとは思います。(new WP-Query関数は使いやすいんですよねー)