WooCommerce如何用&&运算符同时判断尺寸与红色颜色属性显示内容
问题原因
代码失效是因为is_tax()函数的传参规则使用错误:is_tax()的第一个参数接收自定义分类法名称,第二个可选参数接收对应分类法下的term值(别名/ID/名称均可),你将pa_color分类法和red术语值都放在第一个参数的数组中,判断逻辑自然无法命中。
修复后代码
如果你的触发场景和原有代码一致,在分类法存档页生效,直接修正is_tax的传参即可:
add_action( 'woocommerce_before_main_content','show_something', 5 ); function show_something() { // 同时满足当前是pa_size分类存档,且当前pa_color分类存档的term值为red if ( is_tax('pa_size') && is_tax('pa_color', 'red') ) { echo "<h2>Hello World</h2>"; } }
如果你使用的是URL参数筛选(如页面地址带
?filter_pa_color=red)而非原生分类存档页,可将判断条件替换为:if ( is_tax('pa_size') && get_query_var('filter_pa_color') === 'red' )
产品详情页适配
如果你实际需要在产品详情页判断当前产品同时存在pa_size属性、且pa_color属性值为red,可使用如下代码:
add_action( 'woocommerce_before_main_content','show_something', 5 ); function show_something() { // 非产品详情页直接终止逻辑 if ( ! is_product() ) return; global $product; $color_val = $product->get_attribute('pa_color'); if ( $product->get_attribute('pa_size') && $color_val === 'red' ) { echo "<h2>Hello World</h2>"; } }
内容的提问来源于stack exchange,提问作者carlozsan
相关产品推荐
相关产品推荐

