メインクエリを変更する方法

メインクエリを変更する方法
メインクエリは、posttype => ‘post’になっている。
これはワードプレスのデフォルトで入っている”投稿”のこと。
メインクエリが投稿になっているため、カスタム投稿をメインクエリにしたいのであればfunctions.phpに記載して変更しなければならない。
例えば、これまたデフォルトで入っているカテゴリーとタグのタクソノミー 。
category.phpやtag.phpでメインループを回してもメインクエリが”投稿”になっているため、カスタム投稿の投稿情報を
category.phpやtag.phpで表示することができない。
そこで登場するのが、フックを使ってメインクエリを投稿するという方法
フックを使ってメインクエリを投稿するという方法
“ブログ”という投稿タイプをメインクエリにしたい場合。
PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 |
//functions.phpに記載する function edit_main_query($query) { if ( $query->is_category() ) { // 検索対象の変更 $query->set('post_type', array('blog')); } if ( $query->is_tag() ) { // 検索対象の変更 $query->set('post_type', array('blog')); } } add_action('pre_get_posts', 'edit_main_query'); |
この記載をすることで、category.phpやtag.phpでブログの記事につけたカテゴリー一覧やタグ一覧を表示することができる。
カテゴリーやタグのスラッグはワードプレスのデフォルトで入っているカテゴリーとタグにしか使うことができない。(予約語)
長い目で今後どのようなコンテンツを追加していくのかがわからないときは、既存のカテゴリーやタグを使うのではなく、
タクソノミーを自作して追加する方が後々の管理がなくなっていくからおすすめ。