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