对类别-子类别结构使用HAS_TERM()函数

时间:2020-11-01 作者:083N

我需要为has-term()函数检查多个子类别。例如假设我有2个类别;酒吧和音乐家。此外,音乐家类别还包括爵士乐、摇滚乐和流行乐。但是,它们也是条形图的子类别。

我想为酒吧——爵士乐、音乐家——爵士乐类别编写不同的代码。

此代码结构不适用于我。

if( has_term( \'jazz\', \'genre\' ) ) {
    // do something
}
因为我在酒吧和音乐家下面有爵士乐子类别。

当我用这种结构编写代码时,它也不起作用。

if( has_term( array(\'musicians\',\'jazz\'), \'genre\' ) ) {
    // do something
}
我如何解决这个问题?

1 个回复
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;

}

相关推荐