当存在多个自定义分类法时,Get_terms返回错误


Get_terms returns error when more than one custom taxonomy exists

StackOverflow大家好!

我在使用get_terms函数时遇到问题:

我有一个网站要设计,有两个级别的类别。在第一个层次中,我使用了已经存在的Wordpress分类法"category",在第二个层次上,我创建了一个自定义分类法。

当用户加载页面时,它会获取所有自定义的post_type"content",并使用帖子中设置的两个分类级别过滤结果,以仅显示所需的内容。

我集成了我的自定义分类法第一次出现时的所有内容,但当我添加一个新分类法时,以前的分类法已经不起作用了:

get_terms();在第二个分类法的页面中,即使对于没有标记的帖子,也返回了我的新类别的名称,get_terms()在第一个类别的页面中返回了一个空数组。

当我删除第二类时,问题消失了,第一类的所有帖子都重新开始工作。

这个问题可能是因为我没有自己编写自定义分类法,而是使用了"简单分类法"插件,但在互联网上似乎没有人真的有问题,所以我不确定它是否来自它。

我将向您展示我出现错误的部分:

<ul id="contentList">
    <?php query_posts('post_type=contenus&showposts=-1');
    while ( have_posts() )
        {
            the_post();
            $rubrique = get_terms('rubrique');
                if (ucwords($actual_rubrique) == $rubrique[0]->name){
                    echo '<a href="';
                    $url = explode('?', $_SERVER['REQUEST_URI']);
                    echo $url[0];
                    echo '?tab=';
                    echo $post->ID;
                    echo '"><li>';
                    echo the_title();
                    echo '</li></a>';};?>
    <?php }; ?>
</ul>

当它工作时,get_terms()为Urbanism类别返回"Urbanisme"。(这是一家法国网站)

编辑:

我试着改变我的思维方式:我没有在cutsom post_type页面上做这一切,而是把它移到了page.php。我仍然有同样的问题:

当我只有一个术语时,网站上的每个页面都会用它来标记,当有两个时,他们都会使用第二个术语,即使是那些被检查为第一个术语的人。。。

我真的不明白发生了什么。请帮助:/

问题已解决:

我不明白get_terms()是如何工作的。它只是向我返回了一个包含我的分类法中所有现有术语的数组。

为了获得实际的术语,我使用了has_terms():

  if (has_term($actual_rubrique, 'rubrique', $post)){ do_stuff();};