Wordpress pre_get_postsアクションフック is_main_query()
functions.php
-------
/*----- クエリ ------*/
function my_pre_get_posts($query) {
// 管理画面 or メインクエリ 以外には設定しない
if(is_admin() || $query->is_main_query()) { # is_main_query => 現在のクエリがメインクエリかどうかを判断する。
return;
}
// トップページの場合
if($query->is_home()) {
$query->set('posts_per_page', 5);
return;
}
}
add_action('pre_get_posts', 'my_pre_get_posts');
-----------
$query->set('パラメータ名', '値');
例)お知らせカテゴリーに属する記事
if($query->is_home() ) {
$query->set('category_name', 'sragu'); // ⇦ 2番目の引数の、値はスラッグ名。
return;
}
例)カテゴリーページ 全件出力
if($qiery->is_category() ) {
$query->set('nopaging', true); // ⇦ nopaging ページングをせずに、すべての記事を表示。(is_category) => カテゴリーを出力
}