Как я могу выбрать термины таксономии, применяя фильтры к ее полям?


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

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

Например, у меня есть словарь book_author и словарь книг, и мне нужно получить все книги, написанные определенным автором tid.

Существуют ли API, которые я могу использовать с помощью одного вызова, или я нужно использовать Sql-запросы для таблиц taxonomy_*field_data_*?

Author: Cris, 2012-09-07

1 answers

В EntityFieldQuery класс - это обычный инструмент для такого рода задач. Взгляните на документы для получения дополнительной информации, но это базовый пример, основанный на том, что вы упомянули в своем вопросе:

$query = new EntityFieldQuery;
$query->entityCondition('entity_type', 'taxonomy_term')
  ->propertyCondition('vid', $vocab_id_of_terms_you_want_to_select)
  ->fieldCondition('field_author', 'tid', $the_author_tid);

$results = $query->execute();

$found_terms = taxonomy_term_load_multiple(array_keys($results['taxonomy_term']));
 1
Author: Clive, 2012-09-07 08:55:53