Woocommerceはワードプレスで最も使用されている商品販売用プラグインです。
このプラグインの商品検索から特定のカテゴリーの商品を除外する方法を解説いたします。

Woocommerceで特定のカテゴリーの商品を検索結果から除外する
テーマに含まれるFunctions.phpに下記のコードを記載することで商品検索から特定のカテゴリーの商品を除外することができます。
function woocommerces_search_posts( $query ) {
    if (! is_admin() && $query->is_main_query() && $query->is_search())
    {
        $query->set( 'post_type', array( 'product' ) );
        $tax_query = array(
            array(
                'taxonomy' => 'product_cat',
                'field' => 'slug',
                'terms' => 'Woocommerce商品のカテゴリーターム(スラグ)',
                'operator' => 'NOT IN',
            ),
        );
        $query->set( 'tax_query', $tax_query );
    }
}
add_action( 'pre_get_posts', 'woocommerces_search_posts' );
 if (! is_admin() && $query->is_main_query() && $query->is_search())
このコードで、管理画面でなく、かつ 検索結果を表示する場合にのみ、処理を付け加えます
$query->set( ‘post_type’, array( ‘product’ ) );
このコードで検索結果をWoocommerceの商品に限定します。
‘terms’ => ‘Woocommerce商品のカテゴリーターム(スラグ)’,
この行の「Woocommerce商品のカテゴリーターム(スラグ)」 の部分に除外したいWoocommerce商品のスラグを入れます。
‘operator’ => ‘NOT IN’,
この行で前述のスラグを除外するようにワードプレスに指定しています。

        


