_x('页面类型','分类法通用名称'),'singular_name'=>_x('页面类型','分类法单数名称'),...$args=array('hierarchical'=>f"> "WordPress的has_term()函数未能如预期般工作"-PHP中文网问答
"WordPress的has_term()函数未能如预期般工作"
P粉248602298
P粉248602298 2023-09-06 15:59:22
0
1
456

我有一个自定义的文章分类法,定义如下:

// 为文章注册自定义分类法 function custom_taxonomy_page_type_for_posts() { $labels = array( 'name' => _x( '页面类型', '分类法通用名称' ), 'singular_name' => _x( '页面类型', '分类法单数名称' ), ... $args = array( 'hierarchical' => false, ... 'rewrite' => array( 'slug' => 'page-type' ), 'show_in_rest' => true, ); register_taxonomy( 'page_type', 'post', $args ); }

在以下代码中,我想根据当前文章是否被分配为“简报”页面类型来添加一个body类。

/* 这将在body标签上添加“vn-briefing”或“vn-not-briefing”类。 */ function add_page_type_css_class($classes) { if (is_singular('post')) { // 检查文章是否被分配了ID为187的“页面类型”分类法 if (has_term('Briefing', 'Page Types')) { $classes[] = 'is-briefing'; } else { $classes[] = 'is-not-briefing'; } } return $classes; } add_filter('body_class', 'add_page_type_css_class');

即使文章被分配了ID=187的“页面类型”为“简报”,它始终返回false。

我希望如果文章被分配了“简报”页面类型,该函数返回true,但它没有。

我还尝试过:

has_term('Briefing', 'Page Type') has_term('Briefing', 'page-type')

我该如何做?

P粉248602298
P粉248602298

全部回复 (1)
P粉022723606

正确的语法应该是has_term('briefing', 'page_type')。以下是更新后的代码:

function add_page_type_css_class($classes) { if (is_singular('post')) { // 检查帖子是否有“页面类型”分类法,其别名为 'briefing' 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');
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!