Listar todos los términos de un vocabulario


25

Tengo una taxonomía llamada servicios y quiero enumerar todos los términos. Puedo cargar el vocabulario con

 $vocabulary = taxonomy_vocabulary_machine_name_load('Services')

pero no se puede ver para sacar todos los términos.


puedes escribir código detallado?
monymirza

Respuestas:


43

Hay algunas formas pero prefiero entity_load():

$vocabulary = taxonomy_vocabulary_machine_name_load('Services');
$terms = entity_load('taxonomy_term', FALSE, array('vid' => $vocabulary->vid));

También puedes usar:


¿Puede explicar las ventajas de usar entity_load?
niksmac

3
@NikhilM Es menos caracteres para escribir taxonomy_term_load_multiple()que por eso personalmente lo prefiero. El uso taxonomy_get_tree()introduce niveles innecesarios de complejidad a las consultas involucradas, a menos que necesite específicamente los términos en su jerarquía original (que OP no especificó)
Clive

Me gusta, creo que la respuesta a continuación es un poco más fácil de leer.
LeBlaireau

@welovedesign ¿En serio? Prefiero 2 líneas sobre 6, pero eso es solo preferencia personal :) Siempre y cuando tenga menos de 80 caracteres, usted también se adhiere a los estándares de codificación de Drupal
Clive

Mi +1 por cumplir con los estándares de codificación de Drupal
niksmac

18

Me gustaría usar este código.

$name = 'YOUR_VOCAB_NAME';
$myvoc = taxonomy_vocabulary_machine_name_load($name);
$tree = taxonomy_get_tree($myvoc->vid);
foreach ($tree as $term) {
 echo $term->tid;
}

taxonomy_vocabulary_machine_name_load

taxonomy_get_tree


Si tiene un sitio multilingüe, esto no funciona como se desea. Si quiero todos los términos, independientemente del idioma, esto no le dará los resultados adecuados. "taxonomy_get_tree" analizará los resultados en función del idioma. la respuesta anterior funciona para mí
Vaibhav Jain
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.