pre_get_postsを使って表示件数を変更する
- 2019.09.10
- Wordpress

WordPressで記事を取得する方法はいくつかありますが、取得するときには毎回DBに問い合わせるため無駄な問い合わせはできる限り減らしたほうがいいです。
よくnew WP_Query()
で記事を取得したりしますが、その場合URLがリクエストされたときとテンプレートファイル内でWP_Query()
を呼び出したときの合計2回のDBへの問い合わせが発生していることになります。
今回は'pre_get_posts'を使って最初の問い合わせの内容を変更するサンプルコードを書いてみます。
コード
function change_posts_per_page($query) {
/* 管理画面,メインクエリに干渉しないために必須 */
if ( is_admin() || ! $query->is_main_query() ){
return;
}
/* カテゴリーページの表示件数を5件にする */
if ( $query->is_category() ) {
$query->set( 'posts_per_page', '5' );
return;
}
}
add_action( 'pre_get_posts', 'change_posts_per_page' );
参考
-
前の記事
WP_Queryで記事を取得したときはwp_reset_postdataとwp_reset_queryのどっちを使うのか 2019.09.08
-
次の記事
投稿に紐づいたタームを取得する 2019.09.12