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’,
この行で前述のスラグを除外するようにワードプレスに指定しています。

WordPress ワードプレスのプラグインのカスタマイズのご相談・ご依頼はワードプレスドクターまでお気軽にお送りください