我有一个WooCommerce问题,我无法解决自己。目前,我正在使用此代码隐藏特定类别的产品。
function custom_pre_get_posts_query( $q ) {
$tax_query = (array) $q->get( 'tax_query' );
$tax_query[] = array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'my-category' ),
'operator' => 'NOT IN'
);
$q->set( 'tax_query', $tax_query );
}
add_action( 'woocommerce_product_query', 'custom_pre_get_posts_query' );
到目前为止,效果很好。但我想修改此代码,但有一个例外...
当我进入产品类别“我的类别” 时,显然也不会显示产品。但是,我想更改代码,以便当我进入“我的类别”的类别页面时不适用。在此类别中,我希望显示产品。
有什么想法吗?
答案 0 :(得分:1)
您可以使用is_product_category()函数进行检查
function custom_pre_get_posts_query( $q ) {
if( ! is_product_category( 'my-category' ) {
$tax_query = (array) $q->get( 'tax_query' );
$tax_query[] = array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'my-category' ),
'operator' => 'NOT IN'
);
$q->set( 'tax_query', $tax_query );
}
}
答案 1 :(得分:-1)
使用is_tax功能检查页面。 这是一个例子。
function custom_pre_get_posts_query( $q ) {
if ( is_tax( 'product_cat', 'my-category' ) ) return; // <--
$tax_query = (array) $q->get( 'tax_query' );
$tax_query[] = array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'my-category' ),
'operator' => 'NOT IN'
);
$q->set( 'tax_query', $tax_query );
}