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.

LeBlaireau
quelle
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:

Clive
quelle
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

Niksmac
quelle
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