get_terms-仅顶层


13

我正在尝试只获得顶级术语:

$cat_args = array(
    'parent '       => 0,
    'number'        => 10,
    'hide_empty'    => false,           
);

$categories = get_terms( 'question_category' , $cat_args); 

但是此查询也返回所有子项,我尝试了所有操作,但始终也得到子项。

自最近5个小时以来,我一直在尝试,但找不到我的代码有什么问题,这是WP错误还是我的代码有问题?

感谢您的帮助。


我认为您的意思仅是分类法中的顶级术语question_category
Pieter Goosen 2014年

是的,我是说
Aryan

Answers:


21

您的代码是正确的,几乎是正确的。乍一看,我必须承认,我也错过了。

您的代码中有两个语法错误。如果你仔细观察,'parent '并且'parent'是不一样的。您不应在单引号(')和参数之间留空格。

另外,您不需要,在最后一个参数之后添加a 。

这应该工作

$cat_args = array(
    'parent'        => 0,
    'number'        => 10,
    'hide_empty'    => false           
);

编辑15-06-2016

从WordPress 4.5开始,的语法已更改get_terms()。该taxonomy参数现在包含在数组或args中,因此新用法将如下所示

$args = [
    'taxonomy'     => 'my_tax',
    'parent'        => 0,
    'number'        => 10,
    'hide_empty'    => false           
];
$terms = get_terms( $args );

2
请注意:您无需,在最后一个数组参数后添加,但是,这样做是一个好习惯;)
jave.web

@ jave.web谢谢,我知道,我并不总是这样做。;-)
Pieter Goosen

@ jave.web 在最后一个数组参数之后添加a 实际上不是一个好习惯,,因为这会破坏其他无法忍受冗余逗号的语言。例如。如果这样做,JSON将中断。
Mikepote

2
@Mikepote实际上是不正确的,这是一种好习惯,如果您尝试将代码从一种语言迁移到另一种语言,则应使用正确的转换/ ter。这就像说您不能将对象创建和/​​或变量作为参数一样,因为如果您复制/粘贴它会破坏JSON ...即使在JavaScript中也是一种好习惯,因此后来在所有地方都添加了支持。在同一语言和项目中进行复制/粘贴的可能性更大,并且如果可能的话,在末尾添加逗号可以防止常见的减速器 -这不仅是我的经验,而且是其他人的经验。
jave.web

@Mikepote坚持jave.web的说法,这不仅是一种好习惯,而且在WordPress PHP编码标准中特别推荐,理想情况下,所有WordPress特定代码都应遵循:make.wordpress.org/core/handbook/best-做法/…
莎拉·刘易斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.