2011-11-28 98 views
0

我遇到了get_terms()函數的問題。返回空數組的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

好吧,我解決了這個問題。

真的有點奇怪。我的所有術語都是使用wp_insert_term函數通過腳本添加的。當我進入edit-tags.php時,儀表板中的taxonomy = location頁面只能看到右側列表中的前三項,但我可以看到其他人在他的左邊定義了雲。

然後,我進入了其中一個條款並保存了它們,它們都出現在右側列表中,也出現在我的數組中。

我猜他們必須在條目列表上進行某種緩存,它需要我通過儀表板保存一個以查看層次結構。我不得不承認,

皮特

0

層次結構進行緩存,並且不wp_insert_term後自動失效。您可以撥打

delete_option("{$taxonomy}_children");

手動強制到下一層次訪問的再生。