【ワードプレス】問い合わせフォームから届く、ひたすら迷惑なスパムメールを防ぐ為には?
さてさて、使えるようになると開発が捗りまくるWP_Query。
今回はWP_Queryの使い方第6弾「タクソノミーの指定」についてご紹介します。
今回のタクソノミーの指定は慣れるまで少しくせがありますが投稿タイプを作成した際に使いこなせているとかなりカスタマイズの幅が広がりますので頑張って使いこなしましょう!
その前に基本的なWP_Queryループの使用方法のコードについておさらいしておきましょう。
<?php
$args = array(
'post_type' => 'post', //投稿タイプの指定
'posts_per_page' => '-1' //表示件数を指定。-1は全件表示
'order' => 'DESC' //昇順・降順の表示順を指定
);
$the_query = new WP_Query($args);
if($the_query->have_posts()): while($the_query->have_posts): $the_query->the_post();
?>
ループの中身の記述
<?php endwhile; endif; wp_reset_postdata(); ?>
タクソノミーの指定
シンプルなタクソノミーの指定の例
まずはシンプルなタクソノミーの指定方法をコードでご覧ください。
<?php
$args = array(
'tax_query' => array(
//条件1
array(
'taxonomy' => 'people',
'field' => 'slug',
'terms' => 'bob',
),
);
);
?>
まずはタクソノミーを指定する場合は’tax_query’を宣言して配列の中に設定を入れ込みます。
上の例は条件が1個だけですがここから条件を増やしていくとなると条件1のような配列を増やしていくような形になります。
複数のタクソノミーの指定の例
次に条件を複数追加した場合を見ていきましょう
<?php
$args = array(
'tax_query' => array(
relation => 'OR',
//条件1
array(
'taxonomy' => 'people',
'field' => 'slug',
'terms' => 'bob',
),
//条件2
array(
'taxonomy' => 'category',
'field' => 'id',
'terms' => 6,
),
);
);
?>
上の例のように配列を増やすことによって様々な条件を指定できますし、配列の中に配列を入れることによって条件の中でも更に絞った条件での指定が可能になります。
その条件をrelationでつないでデータを取得していくわけですが各パラメータの解説は次の章でしていきます。
タクソノミー指定各パラメーター
各パラメーターについて解説していきます
- tax_query:タクソノミーに関するパラメーターをまとめる配列
- taxonomy:タクソノミーを指定。指定したタクソノミー名を指定する。
- field:タームの指定方法を決定。’id’か’slug’で指定する。
- operator:指定したタームを全て含んだりいずれかを含んだり指定することができる
- ‘AND’:指定したタームを全て含んだデータを取得
- ‘IN’:指定したタームのいずれかを含んだデータを取得
- ‘NOT IN’:指定したターム以外のデータを取得
- relation:タクソノミーに指定するパラメーター配列を複数指定する
- ‘AND’:すべてに該当する投稿を取得する
- ‘OR’:いずれかに該当する投稿を取得する
ワードプレス学習にお勧めの書籍
ビジネスサイトを作って学ぶ WordPressの教科書 Ver.5.x対応版
こちらの書籍はデモサイトを作りながらワードプレスで最低限使うであろう技術が詰まった一冊です。この本を何度か学習することによりワードプレスの基本的な考え方から少し応用に踏み込んだところまでの技術が身に着きます。
WordPressデザインレシピ集
こちらの書籍はデモサイトを制作して動きを把握するというより、辞書的な立ち位置の本なのかな?と思います。リファレンスが読みにくいときに各メソッドやクラスの内容を簡潔に使用例も交えて紹介してくれているので「あれ?あの処理はどうするんだっけ?」というようなときに辞書として重宝しております。