【发布时间】:2021-01-13 13:59:17
【问题描述】:
我尝试在 WooCommerce 中实现的目标: 我有许多带有子类别(例如高跟鞋、穆勒鞋、坡跟鞋)的类别(例如鞋子)。所有标准鞋只属于父类,少数特殊鞋(如高跟鞋、穆勒鞋和坡跟鞋)只属于子类。
如果用户打开“鞋子”类别,我只想显示当前类别中的产品(而不是子类别中的产品)。
到目前为止我所做的尝试 我搜索了很多并尝试了许多不同的方法,但没有机会。
方法一: as seen here
function exclude_product_cat_children( $wp_query ) {
if ( isset( $wp_query->query_vars['product_cat'] ) && $wp_query->is_main_query() ) {
$wp_query->set(
'tax_query', array( array (
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $wp_query->query_vars['product_cat'],
'include_children' => false
) )
);
}
}
add_filter('pre_get_posts', 'exclude_product_cat_children', 99);
方法 #2: as seen here
add_filter( 'parse_tax_query', 'cyb_do_not_include_children_in_company_category_archive' );
function cyb_do_not_include_children_in_company_category_archive( $query ) {
if (
! is_admin()
&& $query->is_main_query()
&& $query->is_tax( 'shoes' )
) {
$query->tax_query->queries[0]['include_children'] = 0;
}
}
我真的不知道如何解决这个问题。似乎这两种方法对所有人都有效——只是不适合我。有什么想法吗?
谢谢!
【问题讨论】:
-
您应该重新访问您的类别设置...编辑类别时,您可能需要更改“显示类型”选项...
-
显示类型仅为产品。我尝试了所有选项,但仍然无法正常工作:(
标签: php woocommerce