drupal 7 – ¿Cómo obtengo una lista de todos los términos de taxonomía asignados a un nodo?

Pregunta:

Tengo un nodo y quiero obtener todos los términos de taxonomía asignados al nodo.

En drupal 6 podría usar $node->taxonomy y las funciones taxonomy_* pero estas no existen en drupal 7.

Respuesta:

Los términos de taxonomía se implementan en campos en Drupal 7. Suponiendo que haya definido un campo de taxonomía llamado field_category para su tipo de contenido, puede acceder a él como:

$language = 'und'; // or will be provided by some Drupal hooks
foreach ($node->field_category[$language] as $delta => $value) {
  $term = taxonomy_term_load($value['tid']);
}

Si no tiene acceso al nombre del campo, probablemente la forma más fácil para los nodos es consultar la base de datos directamente:

$results = db_query('SELECT tid FROM {taxonomy_index} WHERE nid = :nid', array(':nid' => $node->nid));
foreach ($results as $result) {
  $term = taxonomy_term_load($result->tid);
}

Sin embargo, tenga en cuenta que puede terminar tratando una mezcla de términos de diferentes vocabularios si tiene más de un campo de taxonomía.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım