点击this帖子操作woocommerce
菜单
这个插件代码:
function product_subcategories( $args = array() ) {
$parentid = get_queried_object_id();
$args = array(
'parent' => $parentid
);
$terms = get_terms( 'product_cat', $args );
if ( $terms ) {
echo '<ul class="product-cats">';
foreach ( $terms as $term ) {
echo '<li class="category">';
woocommerce_subcategory_thumbnail( $term );
echo '<h2>';
echo '<a href="' . esc_url( get_term_link( $term ) ) . '" class="' . $term->slug . '">';
echo $term->name;
echo '</a>';
echo '</h2>';
echo '</li>';
}
echo '</ul>';
}
}
add_action( 'woocommerce_before_shop_loop', 'product_subcategories', 50 );
发射两次。
为什么? 感谢名单
EDIT 原帖子链接:Display WooCommerce Categories, Subcategories, and Products in Separate Lists
答案 0 :(得分:0)
Woocommerce确实允许您使用相同的标记source注册两个事件。因此,如果文件被加载两次(例如,如果你使用include / require而不是include_once / require_once),它可能会导致这个问题:无论如何都要检查它(!)。
钩子本身在woocommerce中被调用两次,所以从技术上讲,钩子可能被调用两次。但我不知道两个模板是否都在同一个调用中加载...但是你可能已经注册了两次调用,因为知道:因此请检查你的代码是否有另一个调用此函数,可能使用不同的标记(除了{ {1}})。
答案 1 :(得分:0)
<强>更新强>
使用您的代码,您只是在做WooCommerce已经在做的事情,这就是为什么您看到重复的类别/子类别菜单项,并且您说它已经被解雇了两次&#34;。
无论如何,如果你保留你的代码,然后你想删除那个WooCommerce生成的类别/子类别项,你可以使用这个钩子函数:
add_filter('woocommerce_product_subcategories_args', function( $args ){
$args['taxonomy']= '';
return $args;
});
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
这将删除WooCommerce重复项目......
原始回答:
woocommerce_before_shop_loop
挂钩:
$args = array()
)add_action( 'woocommerce_before_shop_loop', function(){
wc_print_notice('test message', 'notice');
}, 50 );
请注意,由于您的问题不是非常明确和详细,我们真的不知道您的问题是什么,并且不能为您提供更多帮助...