Nhận ID từ vựng theo thuật ngữ hoặc nút


9

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:


15

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->taxonomykhô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ẻ

    ảnh chụp màn hình

  • các điều khoản phân loại khác

    ảnh chụp màn hình

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);

$nodechứa đối tượng nút và $field_nametên của trường thuật ngữ phân loại.

$itemschứa một mảng đơn giản hóa, so với mảng chứa trong $node->field_<vocabulary_name>.

ảnh chụp màn hình


1

Đố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.


0

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;
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.