Maison > Questions et réponses > le corps du texte
J'ai une taxonomie d'articles personnalisée définie comme suit :
// 为文章注册自定义分类法 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 ); }
Dans le code suivant, je souhaite ajouter une classe de corps selon que l'article actuel est attribué ou non comme type de page "newsletter".
/* 这将在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');
Même si l'article se voit attribuer un « Type de page » avec l'ID=187 comme « Newsletter », il renvoie toujours false.
Je m'attendais à ce que la fonction renvoie true si le type de page "Newsletter" était attribué à la publication, mais ce n'est pas le cas.
J'ai aussi essayé :
has_term('Briefing', 'Page Type') has_term('Briefing', 'page-type')
Que dois-je faire ?
P粉0227236062023-09-07 10:08:18
La syntaxe correcte doit être has_term('briefing', 'page_type'). Voici le code mis à jour :
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');