個人的にやってみたかったので備忘録。WordPressで自分が作った関数の引数に複数の投稿ID(記事ID)を指定して、その記事たちをランダム順に並べて表示させるやり方です。投稿IDを変えるだけで表示される記事も変わるので管理が楽になります。
[ads_center]
WP_Queryを使うやり方
やり方は、WP_Queryを使って投稿IDの配列から新しくループを作成していきます。$post_idsに自分が表示したい記事の投稿IDを指定するようにします。
自分で作ったループを初期状態に戻すために、wp_reset_postdata()も忘れずに記述しておきます。
function post_id_random($post_ids) { $args = array( 'post__in' => $post_ids, 'orderby' => 'rand' ); $post_ids_query = new WP_Query($args); if($post_ids_query->have_posts()) { while($post_ids_query->have_posts()) { $post_ids_query->the_post(); echo '<ul>'; echo '<li><a href="'; echo the_permalink(); echo '">'; echo the_title(); echo '</a></li>'; echo '</ul>'; } wp_reset_postdata(); } else { echo '<p>該当記事がない場合はここが表示</p>'; } }
そして、表示したい場所に以下のように記述します。ここでは、例として「10, 11, 12」の投稿IDを指定しています。
$post_ids = array(10,11,12); post_id_random($post_ids);
これで、投稿IDが10、11、12の3つの記事をランダムの順番で並べて表示させることができます。
これがどういった時に役立つのかというと、例えばオススメ記事として自分が見せたい記事を複数並べたい、なんて時に使えます。ちょっと変更したくなったら投稿IDを変えるだけなので比較的管理も楽になるはずです。
以下のサイトが参考になりました。
WordPress:記事IDの配列からループを作成して記事一覧を表示する方法 | 情報科学屋さんを目指す人のメモ
ちょいちょい忘れる『WP_Query』の使い方 | 予習と復習
ちなみに、投稿IDではなくて投稿スラッグを指定して表示させたい場合は以前書いた以下の記事をどうぞ。