it-swarm.asia

احصل على معرف المفردات حسب المصطلح أو العقدة

سوف أتحقق مما إذا كان المصطلح ينتمي إلى مفردات معينة.

ما هي الوظيفة المستخدمة للحصول على المفردات حسب المصطلح أو العقدة؟

9
Charles Yeung

في Drupal 6 ، إذا كنت تعرف معرف مصطلح التصنيف ، يمكنك الحصول على معرف المفردات باستخدام الكود التالي:

$term = taxonomy_get_term($tid);
$vid = $term->vid;

إذا كان لديك معرف عقدة ، فيمكنك استخدام الكود التالي للحصول على معرف المفردات لجميع مصطلحات التصنيف المرتبطة بالعقدة باستخدام الكود التالي:

$node = node_load($nid);
$vids = array();

if (!empty($node->taxonomy)) {
  foreach ($node->taxonomy as $tid => $term) {
    $vids[] = $term->vid;
  }
}

في Drupal 7 ، سيكون الرمز التالي:

$term = taxonomy_term_load($tid);
$vid = $term->vid;

في Drupal 7 ، خاصية العقدة $node->taxonomy لم تعد موجودة. بدلاً من ذلك ، هناك $node->field_<vocabulary_name> ، وهي مصفوفة ذات هيكلين مختلفين.

  • العلامات

    screenshot

  • مصطلحات تصنيفية أخرى

    screenshot

باستخدام field_get_items () ، ستحصل على مصطلحات التصنيف باللغة التي سيتم عرضها بها ، أو باللغة التي يتم تمرير رمزها كوسيطة للدالة.

$items = field_get_items('node', $node, $field_name);

$node يحتوي على كائن العقدة و $field_name اسم حقل مصطلح التصنيف.

$items يحتوي على مصفوفة مبسطة ، مقارنة بالصفيف الموجود في $node->field_<vocabulary_name>.

screenshot

15
kiamlaluno

بالنسبة إلى Drupal 7 ، يجب أن يكون الرمز أعلاه كما يلي:

 $tid = 18;
 $vid = db_query('SELECT vid FROM {taxonomy_term_data} WHERE tid = :tid', 
                  array(':tid' => $tid)
                )->fetchField();
 echo $vid;

شاهد المزيد من الأمثلة على db_query () drupal 7 دالة.

1
TheodorosPloumis

تم حلها بواسطة الرمز أدناه:

$tid = 18;    
$result = db_query("SELECT vid FROM {term_data} WHERE tid = %d", $tid);
$vid = db_result($result);
echo $vid;
0
Charles Yeung