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

WordPress has_term()函数验证自定义分类失效问题求助

解决方法

问题核心是has_term函数的第二个参数使用错误——必须传入自定义分类法的内部注册名称,而非显示名称、单数名称或URL别名。

从你的注册代码能看到,自定义分类法的内部名称是page_type(对应register_taxonomy('page_type', 'post', $args);中的第一个参数),这才是has_term需要的正确参数值。

修改后的完整函数代码如下:

/* This either adds the class "vn-briefing" or "vn-not-briefing" to the body tag. */
function add_page_type_css_class($classes) {
    if (is_singular('post')) {
        // 使用分类法的内部标识符 'page_type'
        if (has_term('Briefing', 'page_type')) {
            $classes[] = 'is-briefing';
        } else {
            $classes[] = 'is-not-briefing';
        }
    }
    return $classes;
}
add_filter('body_class', 'add_page_type_css_class');

可选验证技巧

  • 不确定分类法内部名称时,可在后台进入「文章」→「Page Types」,查看浏览器地址栏的URL,其中会包含taxonomy=page_type,这就是正确的内部名称。
  • 也可以直接用分类ID替代名称,避免拼写误差:has_term(187, 'page_type'),验证逻辑会更精准。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 07:47:04