我正在使用Woocommerce构建一个商店,并使用WooCommerce产品类别小部件。我用子类别设置了许多产品类别。其中一个类别是“海报”,有几个子类别,如“星标”、“旅行”、“自然”…。
默认情况下,Woocommerce只显示父类别,这是很好的。如果我点击一个类别“海报”,我被重定向到“海报”类别存档页面,小部件显示所有的“海报”子类别,它是完美的。
现在,如果我单击其中一个“海报”子类别,我将被重定向到相应的归档页面,但我的导航不再显示所有其他“海报”子类别。
问题:
如何在浏览子类别时获得所有父类别和“兄弟”子类别?
标准导航的随机示例折叠时:
电话案件 马克杯 枕头 海报 衬衫 贴纸
单击“海报”时导航的示例:
电话案件 马克杯 枕头 海报 -明星标志 -旅行 -自然 -摘要 --排版 衬衫 贴纸
当单击子类别时,例如:“自然”,导航回到看上去就像给出的第一个例子,都崩溃了。但我希望它保持扩张,就像第二个例子一样。
屏幕截图中的Bellow是我为Woocommerce产品类别部件设置的:

任何帮助都将不胜感激。
发布于 2018-01-30 21:12:54
你的设置是正确的。下面的代码只针对档案类别页面,现在它将显示Woocommerce产品类别小部件中的所有子类别,用于当前的子类别:
add_filter('woocommerce_product_categories_widget_args', 'widget_product_categories_list_args', 10, 1);
function widget_product_categories_list_args( $list_args ) {
global $wp_query;
// Only for category archives pages
if ( is_tax( $list_args['taxonomy'] ) ):
// Get current category
$current_cat = $wp_query->queried_object;
// Get all Included category terms IDs in the widget
$included_ids = explode( ',', $list_args['include'] );
// Get All Childrens Ids from parent term or from current term
if($current_cat->parent != 0 )
$childrens = get_term_children( $current_cat->parent, $list_args['taxonomy'] );
else
$childrens = get_term_children( $current_cat->term_id, $list_args['taxonomy'] );
// Loop through Children term Ids and add them to existing included ones
foreach( $childrens as $child )
$included_ids[] = $child;
// Replace included product category term IDs in the $args array
$list_args['include'] = $included_ids;
endif;
return $list_args;
}代码位于活动子主题(或活动主题)的function.php文件中。
测试和工作。
https://stackoverflow.com/questions/48529109
复制相似问题