WordPress get_terms возвращает пустой массив - PullRequest
0 голосов
/ 29 ноября 2011

У меня проблема с функцией 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 ]

2 голосов
/ 29 ноября 2011

Хорошо, я решил проблему.

Было немного странно.Все мои термины были добавлены через скрипт с использованием функции wp_insert_term.Когда я зашел на страницу edit-tags.php? Taxonomy = location на панели инструментов, то увидел только три верхних термина в списке справа, но я увидел остальные в его терминах слева.

Затем я вошел в одно из терминов и сохранил его, и все они появились в списке с правой стороны, а также в моем массиве.

Я предполагаю, что их обязательство должно быть своего рода кэшированиемсписок терминов, и мне нужно было сохранить один через панель инструментов, чтобы увидеть иерархию.

Странный, я должен признать.

Пит

0 голосов
/ 27 октября 2013

Иерархия кэшируется и не становится недействительной автоматически после wp_insert_term. Вы можете позвонить

delete_option("{$taxonomy}_children");

вручную для принудительного восстановления при следующем доступе к иерархии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...