Elencare tutti i termini da un vocabolario


25

Ho una tassonomia chiamata servizi e voglio elencare tutti i termini. Posso caricare il vocabolario con

 $vocabulary = taxonomy_vocabulary_machine_name_load('Services')

ma non riesco a vedere tutti i termini.


puoi scrivere un codice dettagliato?
Monymirza,

Risposte:


43

Ci sono alcuni modi ma preferisco entity_load():

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

Puoi anche usare:


Potete per favore spiegare i vantaggi dell'utilizzo entity_load?
Niksmac,

3
@NikhilM È meno caratteri da digitare di quello taxonomy_term_load_multiple()che è il motivo per cui lo preferisco personalmente. L'utilizzo taxonomy_get_tree()introduce livelli inutili di complessità alle query coinvolte, a meno che non siano specificamente necessari i termini nella loro gerarchia originale (che OP non ha specificato)
Clive

Mi piace, penso che la risposta qui sotto sia un po 'più facile da leggere.
LeBlaireau,

@welovedesign Davvero? Preferisco 2 righe rispetto a 6 ma questa è solo una preferenza personale :) Fintanto che ha meno di 80 caratteri, stai ancora rispettando gli standard di codifica di Drupal
Clive

Il mio +1 per aderire agli standard di codifica di Drupal
niksmac

18

Vorrei usare questo codice.

$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


Se hai un sito multilingue, questo non funziona come desiderato. Se voglio tutti i termini, indipendentemente dalla lingua, questo non ti dà risultati corretti. "taxonomy_get_tree" analizzerà i risultati in base alla lingua. la risposta di cui sopra funziona per me
Vaibhav Jain,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.