即使HIDE_EMPTY为FALSE,Get_Terms()也不返回空词

时间:2014-09-01 作者:Alex Dumitru

我没办法get_terms() 返回空条件,我已经尝试了很多方法。

代码如下:

$terms = get_terms(\'device\',array(\'hide_empty\' => 0));
foreach($terms as $term) {
        if($term->parent == 0) {
            if($i++ != 0) echo \'</optgroup>\'; echo \'<optgroup label="\'.$term->name.\'">\';
            $id = $term->term_id;
            $args = array("child_of"=>$id);
            $this_term = get_terms(\'device\',$args);
            foreach($this_term as $the_term) { 
                $term_name = str_replace($term->name,\'\',$the_term->name);
                echo \'<option value="\'.$the_term->term_id.\'">\'.$the_term->name.\'</option>\';
            }
        }
    }
我已经尝试了所有可能的方法:

$terms = get_terms(\'device\',array(\'hide_empty\' => false))
$terms = get_terms(\'device\',array(\'hide_empty\' => 0))
$terms = get_terms(\'device\',array(\'hide_empty=false\'))
$terms = get_terms(\'device\',array(\'hide_empty=0\'))
也尝试了最后两种方法array. 似乎什么都没用。它返回所有有帖子的术语,但没有空的。

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

您使用hide_empty 的参数$terms, 但不是为了$this_term 在你的循环中。

此外,根据生成select的方式,只需查询主循环的顶级术语,效率会更高:

$terms = get_terms( \'device\', array( \'hide_empty\' => false, \'parent\' => 0 ) );
然后放下if($term->parent == 0) {... 在你的循环中。

SO网友:Alex Dumitru

我发现了问题。

我正在使用get_terms() 两次,一次给父母,一次给孩子。似乎我没有添加hide_empty=false 给那个得到孩子的人。

结束

相关推荐

Taxonomy term count

我有一个名为“资源”的自定义帖子类型,用于在我的网站上创建资源目录。该CPT具有称为“价格”的分类法。有三个术语因此,当有人在查看我的目录时,他们会在侧栏中看到“价格”以及下面的选项,他们可以单击(例如)免费并查看列出的18种不同的免费资源。我想要的是学期页面我的网站。com/价格/免费要有标题18免费资源我怎样才能做到这一点?