Listen Sie alle Begriffe aus einem Wortschatz auf


25

Ich habe eine Taxonomie namens Dienste und möchte alle Begriffe auflisten. Ich kann das Vokabular mit laden

 $vocabulary = taxonomy_vocabulary_machine_name_load('Services')

kann aber nicht alle begriffe raus sehen.


Kannst du detaillierten Code schreiben?
Monymirza

Antworten:


43

Es gibt ein paar Möglichkeiten, aber ich bevorzuge entity_load():

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

Sie könnten auch verwenden:


Können Sie bitte die Vorteile der Verwendung erklären entity_load?
Niksmac

3
@NikhilM Es müssen weniger Zeichen eingegeben werden, als taxonomy_term_load_multiple()ich persönlich bevorzuge. Durch taxonomy_get_tree()die Verwendung von werden die betreffenden Abfragen unnötig komplex, es sei denn, Sie benötigen speziell die Begriffe in ihrer ursprünglichen Hierarchie (die vom OP nicht angegeben wurden)
Clive

Ich mag es, ich denke, die Antwort unten ist ein bisschen leichter zu lesen.
LeBlaireau

@welovedesign Wirklich? Ich bevorzuge 2 Zeilen gegenüber 6, aber das ist nur eine persönliche Vorliebe :) Solange es weniger als 80 Zeichen sind, halten Sie sich auch noch an die Kodierungsstandards von Drupal
Clive

Mein +1 für die Einhaltung der Drupal-Codierungsstandards
Niksmac

18

Ich möchte diesen Code verwenden.

$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


Wenn Sie eine mehrsprachige Site haben, funktioniert dies nicht wie gewünscht. Wenn ich alle Begriffe unabhängig von der Sprache haben möchte, erhalten Sie keine richtigen Ergebnisse. "taxonomy_get_tree" analysiert die Ergebnisse basierend auf der Sprache. Die obige Antwort funktioniert für mich
Vaibhav Jain
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.