You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用&&运算符实现WooCommerce满足尺寸和红色属性时输出内容

代码不生效的核心原因

  1. is_tax() 函数用于判断当前页面是否为指定分类法的归档页,一个WordPress归档页不可能同时属于pa_size和pa_color两个属性的归档页,所以两个is_tax判断用&&拼接后永远返回假,逻辑从根上就不成立。
  2. is_tax(array('pa_color','red'))属于语法错误,判断某个分类法的指定术语归档的正确写法为is_tax( 'pa_color', 'red' ),不可将分类法名和术语名放在同一个数组内传参。

适配需求的修改方案

根据你描述的「尺寸属性归档页下,颜色属性取值为red时显示内容」的需求,默认适配WooCommerce筛选场景,对应代码如下:

add_action( 'woocommerce_before_main_content','show_something', 5 );
function show_something() {
    // 先判断当前为pa_size属性归档页
    if ( is_tax('pa_size') ) {
        // 兼容获取当前筛选的pa_color值,适配固定链接和参数两种筛选格式
        $current_pa_color = get_query_var( 'pa_color' ) ?: ( $_GET['filter_pa_color'] ?? '' );
        // 校验颜色为red时输出内容
        if ( $current_pa_color === 'red' ) {
            echo "<h2>Hello World</h2>";
        }
    }
}

如果你的实际需求是单个产品页下,产品同时具备尺寸属性、且颜色属性为red时显示内容,则使用以下代码:

add_action( 'woocommerce_before_main_content','show_something', 5 );
function show_something() {
    // 仅在单个产品页执行逻辑
    if ( is_product() ) {
        global $product;
        // 获取产品对应属性值
        $has_size = $product->get_attribute( 'pa_size' );
        $product_color = $product->get_attribute( 'pa_color' );
        
        if ( $has_size && $product_color === 'red' ) {
            echo "<h2>Hello World</h2>";
        }
    }
}

内容的提问来源于stack exchange,提问作者carlozsan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:15:03