Liệt kê tất cả các thuật ngữ từ một từ vựng


25

Tôi có một phân loại được gọi là dịch vụ và muốn liệt kê tất cả các điều khoản. Tôi có thể tải vocab với

 $vocabulary = taxonomy_vocabulary_machine_name_load('Services')

nhưng không thể nhìn thấy để có được tất cả các điều khoản.


bạn có thể viết mã chi tiết không?
monymirza

Câu trả lời:


43

Có một vài cách nhưng tôi thích entity_load():

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

Bạn cũng có thể sử dụng:


Bạn có thể vui lòng giải thích những lợi ích của việc sử dụng entity_load?
niksmac

3
@NikhilM Đó là ít ký tự để nhập hơn taxonomy_term_load_multiple()đó là lý do tại sao cá nhân tôi thích nó. Việc sử dụng taxonomy_get_tree()giới thiệu mức độ phức tạp không cần thiết cho các truy vấn có liên quan, trừ khi bạn đặc biệt cần các thuật ngữ trong hệ thống phân cấp ban đầu của chúng (mà OP không chỉ định)
Clive

Tôi thích nó, tôi nghĩ rằng câu trả lời dưới đây là dễ đọc hơn một chút.
LeBlaireau

@welovedesign Thật sao? Tôi thích 2 dòng trên 6 nhưng đó chỉ là sở thích cá nhân :) Miễn là dưới 80 ký tự, bạn vẫn tuân thủ các tiêu chuẩn mã hóa của Drupal
Clive

+1 của tôi cho việc tuân thủ các tiêu chuẩn mã hóa của Drupal
niksmac

18

Tôi muốn sử dụng mã này.

$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_vocellect_machine_name_load

taxonomy_get_tree


Nếu bạn có một trang web đa ngôn ngữ, điều này không hoạt động như mong muốn. Nếu tôi muốn tất cả các điều khoản, bất kể ngôn ngữ, điều này không cung cấp cho bạn kết quả thích hợp. "taxonomy_get_tree" sẽ phân tích kết quả dựa trên ngôn ngữ. câu trả lời trên có hiệu quả với tôi
Vaibhav Jain
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.