Время от времени продолжаю кодить под drupal 7, публикую еще один пример для работы EntityFieldQuery, на этот раз с фильтром по полю типа term reference.
Основная логика точно такая же как и при работе с data полями (где у нас хранятся тексты или числа). Отличие только одно — у референсного поля в базе данных наименование столбца данных в зависимости от типа ссылки может принимать разные значения. Например, для term reference это ‘tid’.
| 
					 1 2 3 4 5 6  | 
						$Query = new EntityFieldQuery(); $Query->entityCondition('entity_type', 'node') ->propertyCondition('type', 'typeName') ->fieldCondition('field_name', 'tid', $TERM_ID) ->propertyOrderBy('title'); $nodes = $Query->execute();  | 
					
Результатом будет массив вида:
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  | 
						Array  (   [node] => Array  (      [1747] => stdClass Object      (        [nid] => 1747        [vid] => 7790        [type] => download      )      [1748] => stdClass Object      (        [nid] => 1748        [vid] => 7791        [type] => download      )   ) )  | 
					
Далее, обычно, следует обработка этого массива, вроде:
| 
					 1 2 3 4 5 6  | 
						if (!empty($nodes['node'])) {   foreach ($nodes['node'] as $node) {     $node = node_load($node->nid);     ...   } }  | 
					


