WordPressで任意の条件に当てはまる記事を一覧表示する方法「WP_Query」

こんな方におすすめ

 ・WordPressでタグやタクソノミー等の比較的マイナーな条件での記事一覧表示を実装したい
 ・1ページに表示される記事件数を変えたい
 ・絞り込み検索を実装したい

$argsに条件を格納

 WordPressでは、カテゴリーや月別アーカイブを使うことで、特定のカテゴリーやある月の記事一覧を簡単に取得できますが、タクソノミーごと等の複雑な条件での一覧表示(絞り込み)を実装しようとすると案外難しいです。そこで、それを実装する方法を見つけましたので、皆さんにも共有したいと思います。

 結論から先に述べますと、WP_Queryを使えば実装できます。はじめに、コードを示します。

 まず、3~6行目の部分で取得する記事の条件を配列に格納します。

 上のコードでは、「カスタムフィールドの値」がvalueの投稿を取得しています。コードから分かるように、カスタムフィールドの値を指定するときは「’meta_value’ => ‘○○’」と表すのですね。他にも例えば、「’category_name’ => ‘○○’」とすれば、カテゴリーで絞り込めますし、「’taxonomy’=> ‘○○’」とすれば、タクソノミーで絞り込めます。他にも、ここには書き切れないほどたくさんあります。また、上のコードに「’post_per_page’ => 5」という記述がありますが、このように取得(表示)のしかたなども指定できますので、併せて知っておくと便利かと思います。

条件$argsをWP_Query()の引数にセット

 さて、条件を指定したら8行目にある通り、「WP_Query($args)」と指定した条件の配列$argsをWP_Query()の引数にセットします。9行目以降で、指定した条件に合った投稿について、ページに表示するコードを書けば、ほぼ完成です。最後に16行目の「wp_reset_postdata();」を忘れないで記述してください。

 冒頭にも記載しましたが、これを応用することで絞り込み検索も実装できます!この方法については、また後ほど別の記事でご紹介したいと思います。

追記 

WordPressで絞り込み検索を実装する方法絞り込み検索 

https://produce-web.net/blog/refined-search/