it-swarm-vi.com

Nhận ID 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?

9
Charles Yeung

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 tồn tại nữa. Thay vào đó, có $node->field_<vocabulary_name>, là một mảng có hai cấu trúc khác nhau.

  • thẻ

    screenshot

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

    screenshot

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 được đơn giản hóa, so với mảng chứa trong $node->field_<vocabulary_name>.

screenshot

15
kiamlaluno

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 db_query () drupal 7.

1
TheodorosPloumis

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;
0
Charles Yeung