WordPressをカスタマイズするにあたり、カスタム投稿を活用している方は多いのではないでしょうか。通常のブログ機能とは別に、カスタムフィールド等と組み合わせて投稿フォームをカスタマイズしたり、応用できる幅が広くて便利なカスタム投稿ですが、Wordpress標準の検索機能で検索すると通常の投稿記事と一緒に表示されてしまい、「カスタム投稿タイプの投稿だけ除外したいな」と思うこともしばしば。
という事で、WordPressの検索対象からカスタム投稿タイプの投稿だけを除外する設定をご紹介。
functions.php に記述
設定はとてもシンプル、「functions.php」のどこかに以下を記述して、アップロードするだけで完了です。
function search_exclude_custom_post_type( $query ) { if ( $query->is_search() && $query->is_main_query() && ! is_admin() ) { $query->set( 'post_type', array( 'post', 'page' ) ); } } add_filter( 'pre_get_posts', 'search_exclude_custom_post_type' );
特定のカスタム投稿タイプのみを除外したい場合は、array( ‘post’, ‘page’ ) の箇所を array( ‘post’, ‘page’ ‘タクソノミー名’ ) のように、カスタム投稿タイプのタクソノミー名を指定して下さい。
以上、Wordpressの検索対象からカスタム投稿タイプの投稿を除外する設定でした。