もう定番のpre_get_postsを使う手法。
横着だがそのまま貼る。
emiac-works.com
This domain may be for sale!
一応テンプレ
function
change_query(
$query
) {
/* 管理画面,メインクエリに干渉しないために必須 */
if
( is_admin() || !
$query
->is_main_query() ){
return
;
}
/* 例:トップページはカスタム投稿タイプを表示する */
if
(
$query
->is_front_page() ) {
$query
->set(
'post_type'
,
'myposttype'
);
return
;
}
/* 例:カテゴリーページの表示件数を5件にする */
if
(
$query
->is_category() ) {
$query
->set(
'posts_per_page'
,
'5'
);
return
;
}
}
add_action(
'pre_get_posts'
,
'change_query'
);
ところでWPのカスタマイズを教えていると、クエリ変更は通らなければいけない道だが初心者にはハードルが高いなと実感する。
何しろ、おまじないのようなコードが色々出てくるし、それを解説しようとするとアクションフックの話や、PHPの条件分岐やWPの条件タグも説明しなければいけなくなる。
しかし実際カスタム投稿タイプなどを使い出すと、これを避けることは出来ない。
もっともハードルが高ければそれだけカスタマイズの需要があるわけだが・・・おそらくクエリ変更のプラグインもあるはず。
コメント