在特定类别及其子类别中显示广告

时间:2015-04-18 作者:nima shayanfar

我想在每个类别和子类别的自己的广告被显示。我使用了in\\u category功能,但没有在子类别中显示广告。

请给出建议。

1 个回复
最合适的回答,由SO网友:cybmeta 整理而成

如中所述codex, in_category() 检查直接分配给职位的类别。这意味着,如果将帖子分配给子类别而不是父类别,则使用in_category() 父类别将失败。

示例:您有ID为10的类别,它是类别9的子类别。该职位被分配到第10类,而不是第9类。以下代码将检查为false,因为in_category() 检查直接分配给职位的类别:

if( in_category( 9 ) ) {

    // ...

}
如果要检查该帖子是否属于类别9或其任何子类,可以使用post_is_in_descendant_category 中定义为示例的函数in_category 文件:

if( in_category( 9 ) || post_is_in_descendant_category( 9 ) {

    // Post belongs to category 9 or any of its childs.

}

function post_is_in_descendant_category( $cats, $_post = null ) {
    foreach ( (array) $cats as $cat ) {
        // get_term_children() accepts integer ID only
        $descendants = get_term_children( (int) $cat, \'category\' );
        if ( $descendants && in_category( $descendants, $_post ) )
            return true;
    }
    return false;
}
但正如我在评论中对你所说的,我不知道你对所提供的信息的确切问题是什么。

结束

相关推荐

在加载plugins_后,get_plugins()不工作

知道为什么下面的代码function my_plugin_load() { get_plugins(); } add_action( \'plugins_loaded\', \'my_plugin_load\' ); 抛出此错误?Fatal error: 不应调用未定义的函数get\\u plugins()get_plugins() 定义在plugins_loaded 胡克开火了?如果不是,那么什么才是合适的钩子呢?(这个钩子应该启动插件的引导/加载过程)