WP 4.7 in_category change?

时间:2016-12-18 作者:Scott B

自升级到4.7后,此代码行不再返回:

function foo(bar){
    global $post;
    if(in_category("my-test-category", $post)) return;
    echo "Not in my-test-category";
}
in\\u类别筛选器是否有更改?

注:“我的测试类别”是“未分类”的子级

1 个回复
SO网友:Scott B

我发现了问题所在。我一直在运行过滤器list_terms_exclusions 特别是要删除所有“未分类”的儿童出现在公共网站上。

add_filter(\'list_terms_exclusions\', \'my_list_terms_exclusions\',10,2);  
然而,使用in\\u category()仍然会返回这些类别的匹配项,这正是我想要的。我需要隐藏这些类别,以免它们出现在类别列表中,但我仍然需要知道某个特定的帖子何时出现了一个或多个类别。因此,我可以使用in\\u category()实现这一目的。

从我记忆中到4.7之前,这项技术一直运行良好

但是,从4.7开始(可能更早),in\\u category()函数将通过list\\u terms\\u exclusions进行过滤。所以它不再返回任何未分类的类别。

相关推荐

Custom Taxonomy in REST API

我有两个自定义分类法,用于我的帖子。我正试图从其中一个中检索名称。在REST API V2中,我执行以下操作:https://example.com/wp-json/wp/v2/posts/14340/?_embed=wp:term 这嵌入了所有分类法的实际名称(类别加上我的两个自定义分类法),但我只对与每个帖子相关联的名称感兴趣,只对其中一个自定义分类法感兴趣。响应示例:"_embedded": { "wp:term": [