2020.10.19  2021.04.04

WordPressで記事をランダム表示、特定の記事を除外設定する方法

皆さんこんにちは!マコブログです!

今回は、WordPressで記事をランダム表示、特定の記事を除外設定する方法を紹介します。
古い記事も満遍なくユーザーに見せたいな…と思ったら、是非今回の記事を読んでください。



言葉で長々と説明しても分かりづらいと思うので、まずは実際のコードを見てください。

実際のコード

<?php
  $exclude_id = get_the_ID(); //現在表示中の投稿IDを取得、格納
  $index_query = array( //クエリー初期設定
    'post_type' => 'staff', //投稿タイプ
    'post_status' => 'publish', //公開済みの記事
    'posts_per_page' => 3, //出力数 -1で全件
    'paged' => get_query_var('paged'), //ページ番号を考慮
    'orderby' => 'rand', //記事のランダム表示
    'post__not_in' => array($exclude_id), //現在の記事の除外指定
  );
  $seminar_query = new WP_Query($index_query);
?>

それでは、解説をしていきたいと思います。

コードの解説

まず、冒頭の$exclude_id = get_the_ID();では、現在閲覧中の記事のIDを取得しています。

今回は$index_queryという名前を付けてquery設定をしていきましょう!

'orderby' =>は、投稿の表示ルールを変更する事ができます。
'rand'を指定することで、全体の記事からランダムに3件表示することができるようになります。

orderbyで指定できる値は数多く存在していて、代表的なものとして、dateがあります。
こちらは日付順に投稿を表示できるようになり、
さらにorderというオプションを加えることで日付が新しい順(ASC)、または古い順(DESC)に記事を並べることができます。
その他orderbyのオプションについてはこちらをご確認ください。
オプション一覧

次に、現在表示中の記事の除外設定を行います。

WPの除外設定は、post__not_inというオプションを指定します。
post__not_inに指定された投稿IDは、表示枠から外れます。

上記では、複数指定しやすいよう配列で処理を行っていますので、複数の記事を除外したい時は「,」で区切って指定してください。
※ちなみに、array($exclude_id)の$exclude_id には get_the_ID()で現在表示中の投稿IDが格納されていることを忘れずに。


まとめ

いかがでしたか?

今回は、WordPressで記事をランダムに表示、特定の記事を除外設定する方法についてご紹介しました。

ランダム表示をする方法が分からない…。と、困っている仲間がいたら是非、この記事を教えてあげてください!

それでは!また次回の記事で!

こちらの記事も是非チェックしてみてください↓
ブログ開設から1カ月以内にグーグルアドセンスの審査に合格した話

あなたにオススメの記事
マコブログ
Makoto
高校卒業と同時にプログラミングを学習しはじめ、今年で4年目になります。
普段はフロント周りで作業をしていて、WordPressの開発とSEO対策には自信があります。
マコブログでは、プログラミングやSEO対策についての情報を発信しています。

よく読まれる記事

S&P500研究所

【マコブログ 2nd】S&P500研究所がOPENしました!!

Read More →