我遇到了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 ( )
有人知道我做错了吗?
由于 皮特
答案 0 :(得分:2)
好的,我解决了这个问题。
真的有点奇怪。我的所有术语都是使用wp_insert_term函数通过脚本添加的。当我进入edit-tags.php?taxonomy =位置页面在仪表板中只能看到右侧列表中的前三个术语,但我可以在左边的术语云中看到其他术语。
然后我进入了其中一个术语并保存了它们,它们都出现在右侧的列表中以及我的阵列中。
我猜他们必须在术语列表中进行某种缓存,它需要我通过仪表板保存一个以查看层次结构。
我必须承认一个奇怪的事。
皮特
答案 1 :(得分:0)
层次结构被缓存,并且在wp_insert_term之后不会自动失效。你可以打电话
delete_option("{$taxonomy}_children");
手动强制在下次访问层次结构时重新生成。