意外と使う機会があるのでメモがてらご紹介します。WordPressで特定の記事だけを表示させたい時があるかと思います。自分が指定した記事だけを好きな場所に表示できる関数を作っておくと何かとカスタマイズもしやすくなりますよね。今回は投稿スラッグを引数に指定して表示させるやり方です。
[ads_center]
get_posts()を使う
以下をfunctions.phpに記述します。ここではパーマリンク、アイキャッチ画像、投稿タイトルを出力させています。
function slug_post($value1) { global $post; $post_array_slug = array($value1); foreach($post_array_slug as $value) { $the_slug = $value; $args=array( 'name' => $the_slug ); $my_posts = get_posts($args); foreach($my_posts as $post) { echo '<div><a href="'; the_permalink(); echo '">'; the_post_thumbnail(); the_title(); echo '</a></div>'; } } }
あとは表示させたい場所に以下を追加します。引数には表示させたい投稿スラッグを指定します。
<?php slug_post('ここに投稿スラッグ'); ?>
ヘッダーやサイドバーに自分が指定した記事を表示させたい場合なんかに役立つかと思います。また、3つまとめて指定したいなんて時には$value1の部分を増やしていくことで対応できます。
function slug_post($value1, $value2, $value3) { global $post; $post_array_slug = array($value1, $value2, $value3); foreach($post_array_slug as $value) { $the_slug = $value; $args=array( 'name' => $the_slug ); $my_posts = get_posts($args); foreach($my_posts as $post) { echo '<div><a href="'; the_permalink(); echo '">'; the_post_thumbnail(); the_title(); echo '</a></div>'; } } }
表示させる投稿スラッグも3つ指定してあげればOK。
<?php slug_post('投稿スラッグ1', '投稿スラッグ2', '投稿スラッグ3'); ?>
こんな感じで自分の好きな記事をいつでもどこでも表示させれるようにしておくと、ちょっとカスタマイズしたいって時にも利便性が高まるはず。
参考サイト
テンプレートタグ/get posts – WordPress Codex 日本語版