WordPressの検索フォームから検索を実行した時に、カスタム投稿タイプの記事も含めるようにする方法をご紹介いたします。逆に、投稿や固定ページを検索結果から除外する方法も紹介しています。
WordPressの検索結果にカスタム投稿タイプの記事も含める方法
適用しているテーマのfunctions.phpに以下コードを追加します。
function filter_search( $query ) { if ( $query->is_search() && $query->is_main_query() && ! is_admin() ) { $query->set( 'post_type', array( 'post', 'page', 'news' ) ); } } add_filter( 'pre_get_posts', 'filter_search' );
上記の場合、”news”というカスタム投稿タイプが検索結果に含まれるようになります。
逆に固定ページは含めたくないとか、通常の投稿を含めないといった場合は、「$query->set」内の投稿タイプ名を削除すればOKです。
function filter_search( $query ) { if ( $query->is_search() && $query->is_main_query() && ! is_admin() ) { $query->set( 'post_type', array( 'news' ) ); } } add_filter( 'pre_get_posts', 'filter_search' );
この場合、カスタム投稿タイプの”news”だけが検索の対象になります。
あとがき
検索結果に含める投稿タイプを指定したい時は、ぜひ参考にしてください。