Tôi sẽ kiểm tra xem một thuật ngữ có thuộc về một từ vựng được chỉ định hay không.
Hàm nào được sử dụng để lấy từ vựng theo thuật ngữ hoặc nút?
Tôi sẽ kiểm tra xem một thuật ngữ có thuộc về một từ vựng được chỉ định hay không.
Hàm nào được sử dụng để lấy từ vựng theo thuật ngữ hoặc nút?
Câu trả lời:
Trong Drupal 6, nếu bạn biết ID thuật ngữ phân loại, bạn có thể lấy ID từ vựng bằng cách sử dụng mã sau:
$term = taxonomy_get_term($tid);
$vid = $term->vid;
Nếu bạn có ID nút, thì bạn có thể sử dụng mã sau để lấy ID từ vựng của tất cả các thuật ngữ phân loại được liên kết với nút bằng mã sau:
$node = node_load($nid);
$vids = array();
if (!empty($node->taxonomy)) {
foreach ($node->taxonomy as $tid => $term) {
$vids[] = $term->vid;
}
}
Trong Drupal 7, mã sẽ như sau:
$term = taxonomy_term_load($tid);
$vid = $term->vid;
Trong Drupal 7, thuộc tính nút $node->taxonomy
không còn tồn tại nữa. Thay vào đó, có $node->field_<vocabulary_name>
một mảng với hai cấu trúc khác nhau.
thẻ
các điều khoản phân loại khác
Sử dụng field_get_items () , bạn sẽ nhận được các thuật ngữ phân loại theo ngôn ngữ mà chúng sẽ được hiển thị hoặc trong ngôn ngữ có mã được truyền làm đối số cho hàm.
$items = field_get_items('node', $node, $field_name);
$node
chứa đối tượng nút và $field_name
tên của trường thuật ngữ phân loại.
$items
chứa một mảng đơn giản hóa, so với mảng chứa trong $node->field_<vocabulary_name>
.
Đối với Drupal 7, đoạn mã trên phải như thế này:
$tid = 18;
$vid = db_query('SELECT vid FROM {taxonomy_term_data} WHERE tid = :tid',
array(':tid' => $tid)
)->fetchField();
echo $vid;
Xem thêm ví dụ tại hàm db_query () drupal 7.
Giải quyết bằng mã dưới đây:
$tid = 18;
$result = db_query("SELECT vid FROM {term_data} WHERE tid = %d", $tid);
$vid = db_result($result);
echo $vid;