曾经试图解决我面临的问题,但我陷入了困境。我自己为此社区修改了很多woocommerce的默认行为,但是似乎我找不到任何办法来应对这个问题。
我的问题是我只在商店页面上显示类别,当然也列出其中的产品。有些产品确实有我希望(我希望)在某些类别中的所有产品之后显示的子类别。现在,子项显示为第一项,之后显示为产品。如果我从woocommerce_product_loop_start中删除maybe_show_categories过滤器并在arhive-product中回显它,那么我将失去商店页面上的所有类别(而是显示产品,而是将显示类型设置为类别)。
是否有一种方法可以使条件删除过滤器仅影响当前产品类别并从循环中删除子类别,以便我可以在循环结束之前回显它,但它不影响其他类别,仅影响子类别?好像是小孩吗?还是有一种方法可以自行修改循环以仅在产品之后列出子类别?
非常感谢您的帮助!
编辑:
所以,我尝试了:
if ( is_product_category() ) {
echo woocommerce_maybe_show_product_subcategories ( ' ' );
}
此部分有效,并且在相应类别的产品之后回显子类别。但是,这重复了该子类别,我似乎找不到办法摆脱在产品之前显示的第一个实例。
我尝试了
remove_filter( 'woocommerce_product_loop_start',
'woocommerce_maybe_show_product_subcategories' );
但是它删除了所有类别,而不仅是子类别,而且我认为没有条件包装可以帮助解决此问题。
希望这足以澄清我遇到的问题...
编辑2:
在缺乏更好的解决方案的情况下,我设法提出了“解决方案”。仍然希望有人能发布一个真实的,但是现在我设法隐藏了第一个孩子:
.tax-product_cat div.some-element-wrapper:first-child {
display: none;
}
因此,在目前尚无更好的解决方案的情况下,我隐藏了第一个孩子(如果有更多子类别,我也必须将其隐藏),然后在产品循环结束之前回显它们。似乎可以工作。
编辑3:
实际上,它不起作用,因为它还在子类别中隐藏了第一个孩子,这不是我所说的有用的东西。取而代之的是,我必须在css中为每个我们要隐藏/重新定位的子类别的列表使用css中的类别术语选择器,因此对于只有很少几个要重新定位的人来说,它实际上不可用... 回到绘图板。