J'ai un vocabulaire et un type de contenu personnalisé qui ont une référence de terme de champ.
Comment puis-je obtenir tous les nœuds de terme particulier dans mon module?
Quelque chose comme ça? Ça ne marche pas.
$field = field_info_field('field_game');
$results = new EntityFieldQuery;
$results->fieldCondition($field, 'field_game_tid', '5')
->execute();
$nids = array();
foreach($results as $result) {
$nids[] = $result->nid;
}
$nodes = node_load_multiple($nids);
Vous souhaitez spécifier que vous recherchez d'abord les nœuds (et éventuellement par votre type de contenu), puis filtrez par terme:
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'YOUR_CONTENT_TYPE_HERE')
->fieldCondition('field_game', 'tid', 5);
$result = $query->execute();
$nids = array_keys($result['node']);
$nodes = entity_load('node', $nids);
Voici un bon exemple d'une requête d'entité comme ça (et plus de conditions de champ)
Il existe une fonction API taxonomy_select_nodes()
pour cela:
$tid = 5;
$nids = taxonomy_select_nodes($tid, FALSE); // FALSE for paging.
$nodes = node_load_multiple($nids);