WordPress get_terms返回空数组

时间:2011-11-28 22:44:47

标签: wordpress

我遇到了get_terms()函数的问题。

如果我使用:

<?php
$terms = get_terms( 'location' );
print_r($terms);
?>

我得到了一个阵列:

Array ( [0] => stdClass Object ( [term_id] => 8 [name] => Aberdare [slug] => aberdare [term_group] => 0 [term_taxonomy_id] => 8 [taxonomy] => location [description] => [parent] => 7 [count] => 1 ) [1] => stdClass Object ( [term_id] => 10 [name] => Aberdeen [slug] => aberdeen [term_group] => 0 [term_taxonomy_id] => 10 [taxonomy] => location [description] => [parent] => 9 [count] => 14 ) [2] => stdClass Object ( [term_id] => 17 [name] => Aberdeenshire [slug] => aberdeenshire [term_group] => 0 [term_taxonomy_id] => 17 [taxonomy] => location [description] => [parent] => 9 [count] => 41 ) [3] => stdClass Object ( [term_id] => 1203 [name] => Aberdour [slug] => aberdour [term_group] => 0 [term_taxonomy_id] => 1203 [taxonomy] => location [description] => [parent] => 446 [count] => 1 );

但是,如果我尝试使用任意数量的child_of的父项获取条件,则数组将返回空。

<?php
$terms = get_terms( 'location', array('parent' => 9) );
print_r($terms);
?>

我明白了:

Array ( )

有人知道我做错了吗?

由于 皮特

2 个答案:

答案 0 :(得分:2)

好的,我解决了这个问题。

真的有点奇怪。我的所有术语都是使用wp_insert_term函数通过脚本添加的。当我进入edit-tags.php?taxonomy =位置页面在仪表板中只能看到右侧列表中的前三个术语,但我可以在左边的术语云中看到其他术语。

然后我进入了其中一个术语并保存了它们,它们都出现在右侧的列表中以及我的阵列中。

我猜他们必须在术语列表中进行某种缓存,它需要我通过仪表板保存一个以查看层次结构。

我必须承认一个奇怪的事。

皮特

答案 1 :(得分:0)

层次结构被缓存,并且在wp_insert_term之后不会自动失效。你可以打电话

delete_option("{$taxonomy}_children");

手动强制在下次访问层次结构时重新生成。