我需要为has-term()函数检查多个子类别。例如假设我有2个类别;酒吧和音乐家。此外,音乐家类别还包括爵士乐、摇滚乐和流行乐。但是,它们也是条形图的子类别。
我想为酒吧——爵士乐、音乐家——爵士乐类别编写不同的代码。
此代码结构不适用于我。
if( has_term( \'jazz\', \'genre\' ) ) {
// do something
}
因为我在酒吧和音乐家下面有爵士乐子类别。
当我用这种结构编写代码时,它也不起作用。
if( has_term( array(\'musicians\',\'jazz\'), \'genre\' ) ) {
// do something
}
我如何解决这个问题?
SO网友:Giorgio25b
在此处阅读此解决方案:has_category() for parent category
我尝试了类似的方法,而不是敲定所有术语,而是利用上述解决方案来利用类别术语或其任何子类别:
add_filter(\'the_content\', \'ssws_add_content\');
function ssws_add_content($content) {
$cat_id = get_cat_ID(\'accommodations\');
$children = get_term_children($cat_id, \'category\');
$ssws_custom_text = \'<h1>Accomodation</h1>\';
if (is_single() && (has_category($cat_id) || has_category($children))) {
$content .= $ssws_custom_text;
}
return $content;
}