WooCommerce为bracelets分类产品添加自定义按钮代码失效求助
排查你的WooCommerce额外按钮不生效问题
嘿,我来帮你揪出这段代码失效的原因,咱们一步步拆解:
1. 分类判断逻辑完全错了
你用的is_product_category('bracelets')函数,作用是判断当前页面是否是「bracelets」分类的归档列表页,而不是判断单个产品是否属于这个分类!在单个产品详情页里,这个条件永远返回false,按钮自然不会显示。
正确的做法是用has_term()函数,它专门用来检查当前产品是否归属指定分类:
if ( has_term( 'bracelets', 'product_cat', $product->get_id() ) )
2. HTML标签被错误转义
你代码里写的<a href="www.test.com">Extra Button</a>是转义后的字符,输出到页面上只会显示文本<a href="www.test.com">Extra Button</a>,而不是真正可点击的按钮。直接写正常的HTML标签就行。
3. 链接缺少协议头
www.test.com没有加http://或https://,浏览器会把它当成当前域名下的相对路径,点击后会跳转到比如你的域名/www.test.com,这显然不是你想要的效果。
修正后的完整代码
add_action( 'woocommerce_single_product_summary', 'my_extra_button_on_product_page', 30 ); function my_extra_button_on_product_page() { global $product; // 检查当前产品是否属于bracelets分类 if ( has_term( 'bracelets', 'product_cat', $product->get_id() ) ) { // 输出正确的按钮HTML,同时加了WooCommerce默认按钮样式类 echo '<a href="https://www.test.com" class="button">Extra Button</a>'; } }
我还给按钮加了class="button",这样它会自动继承WooCommerce默认按钮的样式,和页面风格更统一~
内容的提问来源于stack exchange,提问作者larsenik
相关产品推荐
相关产品推荐

