ワードプレスの検索に結果を表示する前に条件を付与して、検索結果を変える方法を解説いたします。
この記事の目次
ワードプレスの検索結果に特定のメタキーと値を持つものだけを表示する
検索結果に条件を付与するには、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ワードプレスのカスタマイズ、移行、問題解決はプロフェッショナルが迅速に対応いたします。お気軽にご相談・ご依頼くださいませ