WordPress如何判断自定义property文章是否关联features分类法术语
问题原因
has_term() 函数调用时缺少必填的第二个参数:自定义分类法名称features,同时也建议显式传入当前文章ID作为第三个参数,避免全局上下文异常导致判断错误。你原先的写法没有指定分类法,函数无法识别你要判断的是自定义分类features下的术语关联关系,因此所有判断都返回false,全部显示为未关联状态。
修正后的完整代码
// 单页上下文下先获取全局文章对象,保证判断目标正确 global $post; // 获取所有features分类下的术语,这部分原代码逻辑没问题 $features = get_terms([ 'taxonomy' => 'features', 'hide_empty' => false, ]); foreach ($features as $feature) : // 补全三个参数:术语ID、所属分类法、目标文章ID if (has_term($feature->term_id, 'features', $post->ID)) { echo '<code>✓ ' . esc_html($feature->name) . '</code> '; } else { echo '<code>X ' . esc_html($feature->name) . '</code> '; } endforeach;
补充说明
- 用
$feature->term_id作为判断依据比直接传$feature对象更稳妥,避免不同WordPress版本的兼容性问题 - 输出术语名称时加
esc_html()转义,是WordPress标准的安全输出做法,避免XSS漏洞 - 输出时直接包裹
<code>标签,即可实现你需要的展示效果
内容的提问来源于stack exchange,提问作者Sergey Pervushin
相关产品推荐
相关产品推荐

