WordPressで投稿IDを指定した記事をランダム表示

WordPress

WordPressで複数の投稿ID(記事ID)を指定した記事をランダムで表示させるやり方

個人的にやってみたかったので備忘録。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を変えるだけなので比較的管理も楽になるはずです。

以下のサイトが参考になりました。

ちなみに、投稿IDではなくて投稿スラッグを指定して表示させたい場合は以前書いた以下の記事をどうぞ。

関連記事

  1. WordPress

    WordPressでトップページのURLを変更する方法

    WordPressでWebサイトを作成した時にトップページのURLを「…

  2. WordPress

    WordPressでマルチサイト化した時にアイキャッチ画像の設定が表示されない

    ローカル環境でWordPressをマルチサイト化してみたところダッシュ…

  3. WordPressのログイン時のツールバー

    WordPress

    WordPressでカテゴリーとタグのリストを一緒に出力して表示させるやり方

    色々と悩んだ結果、これが一番手っ取り早くて簡単だったのでメモしときます…

  4. WordPressのログイン時のツールバー

    WordPress

    WordPressウィジェット内でPHPコードが使用できるプラグイン「PHP Code Widget…

    個人的にとてもうれしいプラグインを発見したので備忘録がてらメモしておき…

  5. WordPressのログイン時のツールバー

    WordPress

    WordPressでプラグインなしで関連する記事を一発で呼び出す関数をfunctions.phpに記…

    WordPressのシングルページで、よく記事の終わりにその記事に関連…

最近の記事

  1. KMC-80BK
  2. 味噌ラーメン〜旨辛にんにく味噌〜
  3. STP-XH70
  4. 久保田城

Instagram始めました

Facebookページ

PAGE TOP