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

时间:2014-08-29 10:29:05

标签: php wordpress custom-post-type categories custom-taxonomy

来自StackOverflow的人!

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

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

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

我整合了自定义分类法的第一次出现的所有内容,但是当我添加一个新内容时,之前的那些内容不再有效了:

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()返回&#34; Urbanisme&#34;例如,对于都市主义类别。 (这是一个法国网站)

编辑:

我试图改变我的思维方式:我没有在cutom post_type页面上完成所有这些操作,而是将其移至page.php。我仍然遇到同样的问题:

当我只有一个学期时,网站上的每个页面都会被标记出来,当有两个学期时,他们都会选择第二个,即使是那些被检查过的人也是第一个......

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

1 个答案:

答案 0 :(得分:1)

问题解决了:

我不明白get_terms()是如何工作的。它只是给了我一系列所有现有分类条款。

要获得我使用的实际术语has_terms():

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