WordPressで検索結果から特定のカテゴリを除外するコード

WordPressで有料記事を販売している場合等に、有料記事に検索ワードが含まれていた場合、デフォルトでは検索結果に有料記事も一緒に表示してしまいます。

これだと有料記事の内容が購入者以外にもバレてしまうかもしれませんので、これはぜひ回避したいですよね。

今日はこういう時に使えるコードを紹介します。

まずは、有料記事を一つのカテゴリーにまとめます。

そして、有料記事のカテゴリーが5だとします。

そうしたら、以下のコードをfunctions.phpに入れるようにしてください。

// 検索結果から特定のカテゴリを除外するコード
   function mycustom_search_filter_cat_func( $query ) {
       if ( $query->is_search() && $query->is_main_query() && ! $query->is_admin() ) {
           $cat_id = array( '5' );
           $query->set( 'category__not_in', $cat_id );
       }
       return $query;
   }
   add_filter( 'pre_get_posts', 'mycustom_search_filter_cat_func' );

カテゴリーIDが5と15等、二つ以上に分かれてしまう場合は以下のようにいれます。

// 検索結果から特定のカテゴリを除外するコード
   function mycustom_search_filter_cat_func( $query ) {
       if ( $query->is_search() && $query->is_main_query() && ! $query->is_admin() ) {
           $cat_id = array( '5', '15' );
           $query->set( 'category__not_in', $cat_id );
       }
       return $query;
   }
   add_filter( 'pre_get_posts', 'mycustom_search_filter_cat_func' );
アバター画像

1982年生まれ、ヒップホップやラップビートの制作、及びアーティストのプロデュースやコンサルティングをしているビートメイカー兼音楽プロデューサーです。音楽活動と個人ブログを介して、スモールビジネスのウェブ上でのマーケティング戦略を研究しています。インターナショナル育ちのため、英語が分かります。趣味は筋トレ、写真加工、WordPressカスタマイズ、K-Pop、web3、NFT。韓国が大好き。

Genxをフォローする
ブログ運営
スポンサーリンク