kaibukuroのブログ

HTML/CSS/JavaScript/PHPなどのアウトプット

WordPressのWP_Queryについて

WordPressアーカイブにて投稿・ループなどをカスタマイズする業務すすめる上で、WP_Query関数を知りました。
まだまだ理解が浅いですので勉強中ですが、簡単にまとめます。

WP_Queryとは

wp-includes/class-wp-query.php に定義されているクラスで、
どのような投稿データを持っているかを取得するものらしいです。
これに詳細なデータをリクエストをすることで複雑なループなども可能になるようです。

正直結構難しく、パラメータもたくさんあるので、
わかりやすくまとめられているこのページを見たりして理解を深めました。
wpdocs.osdn.jp

パラメータの例

Posts_per_page(整数)

1ページあたりにどれだけ投稿を表示させるか。

order

投稿の並びを、降順(DESC)か昇順(ASC)にするか。

orderby

並び順の指定。
日付やタイトル、投稿ID、ランダムなど、並び順を制御できる。

例)

'orderby' => 'date',
'order' => 'ASC',
category_name

カテゴリーのスラッグ(カテゴリ名ではありません)を指定して表示させる。

例)

$query = new WP_Query( 'category_name=staff' );

とすることで、"staff"スラッグの記事だけが投稿で表示される。

'post__not_in ' (array)

省きたい投稿IDを配列で指定。

例)

'post__not_in' => array(1,2,10),

とすることで、1,2,10のカテゴリIDの記事が投稿で除外される。

'category__not_in'(array)

省きたいカテゴリ ID の配列。指定した複数のカテゴリーのいずれにもに含まれない投稿のみを表示。



(余談)最近見た動画。

www.youtube.com


ポイントとして、
・エラーなどでググる
・その言語などのリファレンスを対象に見る。
・英語でググる
などとても参考になりました。