我有一個(gè)自訂的文章分類法,定義如下:
// 為文章注冊(cè)自定義分類法 function custom_taxonomy_page_type_for_posts() { $labels = array( 'name' => _x( '頁(yè)面類型', '分類法通用名稱' ), 'singular_name' => _x( '頁(yè)面類型', '分類法單數(shù)名稱' ), ... $args = array( 'hierarchical' => false, ... 'rewrite' => array( 'slug' => 'page-type' ), 'show_in_rest' => true, ); register_taxonomy( 'page_type', 'post', $args ); }
在以下程式碼中,我想根據(jù)目前文章是否被指派為「簡(jiǎn)報(bào)」頁(yè)面類型來(lái)新增一個(gè)body類別。
/* 這將在body標(biāo)簽上添加“vn-briefing”或“vn-not-briefing”類。 */ function add_page_type_css_class($classes) { if (is_singular('post')) { // 檢查文章是否被分配了ID為187的“頁(yè)面類型”分類法 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的“頁(yè)面類型”為“簡(jiǎn)報(bào)”,它總是會(huì)傳回false。
我希望如果文章被指派了「簡(jiǎn)報(bào)」頁(yè)面類型,該函數(shù)傳回true,但它沒(méi)有。
我還嘗試過(guò):
has_term('Briefing', 'Page Type') has_term('Briefing', 'page-type')
我該如何做?
正確的語(yǔ)法應(yīng)該是 has_term('briefing', 'page_type')。以下是更新後的程式碼:
function add_page_type_css_class($classes) { if (is_singular('post')) { // 檢查帖子是否有“頁(yè)面類型”分類法,其別名為 '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');