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

WooCommerce单产品页检测当前产品是否为Featured产品的条件判断方法

WooCommerce单个产品页判断特色产品的正确实现

原有写法失效核心原因是WooCommerce特色产品的存储逻辑和传入参数不匹配:从WooCommerce 3.0版本开始,特色产品标记不属于名为featured的自定义分类法,之前传入的term参数也不符合实际存储规则。

推荐写法(兼容性最高,适配所有WooCommerce 3.0+版本)

直接调用WooCommerce产品对象自带的is_featured()方法,不需要关心底层存储逻辑,官方方法会随版本迭代保持兼容:

global $product;
// 兜底获取产品对象,避免主循环异常时拿不到数据
if ( ! is_a( $product, 'WC_Product' ) ) {
    $product = wc_get_product( get_the_ID() );
}

if ( $product->is_featured() ) {
    // 此处写当前产品是特色产品时需要执行的业务逻辑
}

如果你坚持用has_term()实现

注意分类法名称不是featured,而是WooCommerce内置的product_visibility,对应的term slug为featured,必须显式传入当前产品的ID避免判断错位:

if ( has_term( 'featured', 'product_visibility', get_the_ID() ) ) {
    // 特色产品业务逻辑
}

原有写法的错误点

  • 第一种has_term( 1, 'featured' ):首先系统不存在名为featured的产品分类法,其次product_visibility下的featured项ID不是固定为1,不同站点ID存在差异,传固定ID必然判断不准
  • 第二种has_term( TRUE, 'featured' ):分类法参数错误,且has_term()第一个参数不接受布尔值TRUE作为合法term参数,完全不符合函数调用规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:33:23