来自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。我仍然遇到同样的问题:
当我只有一个学期时,网站上的每个页面都会被标记出来,当有两个学期时,他们都会选择第二个,即使是那些被检查过的人也是第一个......
我真的不明白发生了什么。请帮忙:/
答案 0 :(得分:1)
问题解决了:
我不明白get_terms()是如何工作的。它只是给了我一系列所有现有分类条款。
要获得我使用的实际术语has_terms():
if (has_term($actual_rubrique, 'rubrique', $post)){ do_stuff();};