2020.10.14  2021.04.04

WordPress:tax_queryを使って記事の絞り込みを行う方法

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

今回は、WordPress関数「 tax_query 」の使い方について紹介したいと思います。

tax_queryは複数のタクソノミーで記事を絞り込める優れた奴なので、皆さんも今回の記事を読んで是非使ってみてください。

下準備

まずはwp_query関数を設定して、投稿を呼び出す準備をしてください。

$reqruit_query = array( //クエリー初期設定
  'post_type' => '', //投稿タイプ
  'post_status' => 'publish', //公開済みの記事
  'posts_per_page' => 5, //出力数 -1で全件
  'order' => 'DESC', //降順ソート
  'orderby' => 'date ID', //投稿日でソート
  'paged' => get_query_var('paged'), //ページ番号を考慮
  'tax_query' => array(), // タクソノミークエリー
);

今回はreqruit_queryという名前にしてクエリーを設定しています。



最後の行にあるtax_queryが、今回の肝になるので忘れずに記述してくださいね。

tax_queryのオプションを記述する

ここからが本題、tax_queryのオプションを記述していきます。

先ほどの記述の下に、下記コードを記述してください。

$queryArrayCount = 0;

if (条件文) {
  $reqruit_query['tax_query'][++$queryArrayCount] = array(
    'taxonomy' => '', // タクソノミー名
    'field' => 'slug', // 検索種別
    // 'field' => 'term_id', // 検索種別
    // 'field' => 'name', // 検索種別
    'terms' => 絞り込みたい投稿スラッグ名, // 値
    'operator' => 'IN', // 値(配列)で指定した何らかに一致
    // 'operator' => 'NOT IN', // 含めない
  );
}
if (条件文) {
  $reqruit_query['tax_query'][++$queryArrayCount] = array(
    'taxonomy' => '', // タクソノミー名
    'field' => 'slug', // 検索種別
    // 'field' => 'term_id', // 検索種別
    // 'field' => 'name', // 検索種別
    'terms' => 絞り込みたい投稿スラッグ名, // 値
    'operator' => 'IN', // 値(配列)で指定した何らかに一致
    // 'operator' => 'NOT IN', // 含めない
  );
}
$reqruit_query = new WP_Query($reqruit_query);

こちらの記述を追記すれば、二つのタクソノミーで記事を絞り込むことができるようになります。

コードの解説

上記コードの解説をしたいと思います。

まず、前提条件として、今回話しているtax_queryは、二次元配列といって、配列の中に配列が存在するオプションです。

そのため、クエリーの設定時に配列が1つと、条件文の中に配列が1つありますので、確認してみてください。

先ほどのコードでさりげなく定義した、

$queryArrayCount = 0;

こちらですが、queryArrayCountという変数の中に、0という数字を入れて格納してあります。

これを使用して、配列の一つ目をターゲットにするのか、二つ目をターゲットにするのかを決めています。

[++$queryArrayCount]←これのことですね。

これが無い状態でtax_queryを使用すると、WordPress側で、「あれ?この絞り込みは配列の何番目のものですか?」となってうまく表示されないので、これは必須と考えてください。

条件文の中にtax_queryのオプションを記述していますが、この中身はお好きにアレンジしてみてください。

また、fieldが複数ありますが、これはslug、term_id、nameの三種類から選べるようになっていますので、今回はslugで、スラッグ名を指定して絞り込みをしていますが、

こちらもお好みでアレンジしてみてください。

‘operator’ => ‘IN’は、tax_queryで指定した値に一致するかどうかを決めるものです。

指定したスラッグではない記事を呼び出したい場合、’operator’ => ‘NOT IN’を指定しましょう。


まとめ

いかがでしたか?

今回は、WordPress関数 tax_queryの使い方を紹介しました。
こちらの記事も是非チェックしてみてください↓
WordPressで記事をランダム表示、特定の記事を除外設定する方法

使い方をマスターすれば、かなりアレンジもできると思いますので、今回の記事を参考に、少しでもお力になれたらと思います。

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

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

よく読まれる記事

S&P500研究所

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

Read More →