ワードプレスの検索に結果を表示する前に条件を付与して、検索結果を変える方法を解説いたします。


ワードプレスの検索結果に特定のメタキーと値を持つものだけを表示する

検索結果に条件を付与するには、pre_get_postsフックを使い、かつ $wp_query->is_main_query() && $wp_query->is_search() という条件で検索結果を表示する前のみに$wp_query->に条件追加します。

add_action( 'pre_get_posts', function( $wp_query ){
    if ( $wp_query->is_main_query() && $wp_query->is_search() ) {

        $wp_query->set('meta_query', [
            [
                'key' => '含めたいメタキー',
                'value' => '上記メタキーの値',
                'compare' => '='
            ]
        ]);

    }
});

※Conpareの横のイコールを!=に変えることで逆に特定のメタキーを含まない結果のみにすることも可能です。

ワードプレスの検索結果に特定のカテゴリーの投稿は表示しない

下記の例ではー(マイナス)をつけているカテゴリーID,5,10は検索結果から除外されるようになります。
逆に5,10と記載されるとカテゴリーID,5,10からのみ検索結果が表示されるようになります。

add_action( 'pre_get_posts', function( $wp_query ){
    if ( $wp_query->is_main_query() && $wp_query->is_search() ) {
        $wp_query->set( 'cat', '-5,-10' );
    }
});

ワードプレスの検索結果に特定の投稿は表示しない

下記の例では投稿IDが5,10の物は検索結果に出ないようにします。

add_action( 'pre_get_posts', function( $wp_query ){
    if ( $wp_query->is_main_query() && $wp_query->is_search() ) {
        $wp_query->set( 'post__not_in', array( 5, 10 ) );
    }
});

※投稿IDやカテゴリーIDはその投稿やカテゴリーの編集画面のURLから知ることができます。
例 ttps://wp-doctor.jp/wp-admin/post.php?post=5804&action=edit

ワードプレスの検索結果から固定ページだけにします

add_action( 'pre_get_posts', function( $wp_query ){
    if ( $wp_query->is_main_query() && $wp_query->is_search() ) {
        $wp_query->set( 'post_type', 'page' );
    }
});

WordPressワードプレスのカスタマイズ、移行、問題解決はプロフェッショナルが迅速に対応いたします。お気軽にご相談・ご依頼くださいませ