クエリ変更メモ

もう定番の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の条件タグも説明しなければいけなくなる。

しかし実際カスタム投稿タイプなどを使い出すと、これを避けることは出来ない。

もっともハードルが高ければそれだけカスタマイズの需要があるわけだが・・・おそらくクエリ変更のプラグインもあるはず。

コメント

タイトルとURLをコピーしました