it-swarm-es.com

¿Cómo accedo a los campos de término de una taxonomía?

Específicamente, estoy tratando de acceder a un campo llamado 'logotipo' dentro de un par de términos de taxonomía (edición Tweet y Wikipedia), que es una imagen. Tengo una fuente de noticias en la página principal de mi sitio, y para cada elemento de fuente que tiene una referencia de término a una de estas imágenes al lado de cada elemento de fuente en la fuente. ¿Cuál sería la mejor manera de exponer o acceder al campo del logotipo de cada término de taxonomía?

7
nerdshark

Si va a acceder al contenido de lo que drupal llamar entidades (objetos de datos, como nodos, usuarios, taxonomías, etc.), puede considerar usar módulo de entidad Agrega algunas funciones de ayuda agradable. Lo que Nikit escribe no es posible, haría algo como esto:

$term_id_1 = $node->field_term['und'][0]['tid'];
$term_id_2 = $node->field_term['und'][1]['tid'];

Entonces tendría que cargar los términos, etc. En cambio, con el módulo de entidad que puede hacer.

$images = array();

$node_wrapper = entity_metadata_wrapper('node', $node);
foreach ($node_wrapper->field_term as $term_wrapper) {
  $images[] = $term_wrapper->field_image->value();
}

$images ahora será una matriz con el objeto de campo de imagen que contiene información como uri, fid, etc.

8
googletorp

Utilizando taxonomy_term_load y taxonomy_term_load_multiple le proporcionará el objeto de término completamente cargado, incluidos los campos personalizados.

Alternativamente, use taxonomy_get_tree con el parámetro final ($load_entities) establecido en TRUE.

5