Daftar semua istilah dari kosakata

25

Saya memiliki taksonomi yang disebut layanan dan ingin mencantumkan semua persyaratan. Saya dapat memuat vocab dengan

 $vocabulary = taxonomy_vocabulary_machine_name_load('Services')

tetapi tidak bisa melihat untuk mendapatkan semua persyaratan.

LeBlaireau
sumber
dapatkah Anda menulis kode terperinci?
monymirza

Jawaban:

43

Ada beberapa cara tetapi saya lebih suka entity_load():

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

Anda juga bisa menggunakan:

Clive
sumber
Bisakah Anda jelaskan keuntungan menggunakan entity_load?
niksmac
3
@NikhilM Karakternya lebih sedikit untuk diketik daripada taxonomy_term_load_multiple()itu sebabnya saya pribadi lebih suka. Menggunakan taxonomy_get_tree()memperkenalkan tingkat kerumitan yang tidak perlu pada kueri yang terlibat, kecuali jika Anda secara khusus membutuhkan istilah dalam hierarki aslinya (yang tidak ditentukan oleh OP)
Clive
Saya suka, saya pikir jawabannya di bawah ini sedikit lebih mudah dibaca.
LeBlaireau
@welovedesign Benarkah? Saya lebih suka 2 baris daripada 6 tapi itu hanya preferensi pribadi :) Selama itu di bawah 80 karakter Anda masih mematuhi standar pengkodean Drupal juga
Clive
+1 saya untuk mematuhi standar pengkodean Drupal
niksmac
18

Saya ingin menggunakan kode ini.

$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
sumber
Jika Anda memiliki situs multibahasa, ini tidak berfungsi seperti yang diinginkan. Jika saya ingin semua persyaratan, terlepas dari bahasanya, ini tidak memberi Anda hasil yang tepat. "taxonomy_get_tree" akan menguraikan hasil berdasarkan bahasa. jawaban di atas bekerja untuk saya
Vaibhav Jain