it-swarm.asia

أين أجد معرف المفردات ($ vid)؟

في Drupal 6 سأذهب إلى قسم التصنيف الخاص بي/المشرف وسوف أتمكن من العثور على $ vid (رقمي) في عنوان URL.

في Drupal 7 (بلا شك بسبب إدخال المصطلحات ككيانات) ، لم يعد عنوان URL مطولاً (وقد يقول البعض أنه أكثر نظافة) لأنه يظهر الآن اسم الجهاز (اسم الحزمة؟) من المفردات كما يمكن رؤيتها في admin/structure/taxonomy/my_vocabulary/edit.

اللعبة النهائية التي أستخدمها هي استخدام taxonomy_get_tree ($ vid ، $ الأصل ، $ max_depth ، $ load_entities) لتحميل مفرداتي ، والعمل معها بطرق مجيدة ووفيرة ، ولكن للأسف لا تقبل هذه الوظيفة اسم_آلة ولكن يفضل الرقم $vid.

سأقبل بدائل لتحميل شجرة فوكاب كاملة (أي جميع المصطلحات وعلاقاتها مع بعضها البعض) ، لكنني أعتقد أنه يجب الإجابة على هذا السؤال مباشرة للأجيال القادمة لجوجل.

23
electblake

في الواقع يمكنك استخدام:

$vocab = taxonomy_vocabulary_machine_name_load('my_vocabulary');
$vid = $vocab->vid;
33
Manu

بعد مانو ، إذا كان لديك وصول Drush سطر الأوامر ، يمكنك القيام بما يلي:

drush php-Eval '$ tax = taxonomy_vocabulary_machine_name_load ("main_site_structure")؛ echo $ tax-> vid؛'
10
Robin van Emden

يمكنك استخدام الجدول {taxonomy_vocabulary} يدويًا في قاعدة البيانات ، ثم تحقق من العمود vid.

1
sumaiya

في D7

إذا كان كل ما تحتاجه هو معرف المفردات (vid) وأنت تعرف اسم الجهاز ، يمكنك استخدام:

$query = db_select('taxonomy_vocabulary', 'tv');
$query->fields('tv', array('vid'));
$query->condition('tv.machine_name', __VOCAB_MACHINE_NAME, '=');
$result = $query->execute();
$data = $result->fetchAssoc();
$vid = $data['vid'];

زيادة صغيرة في الأداء: ~ 0.0036489963531494 ثانية إلى ~ 0.00030779838562012 ثانية.

يمكن بالطبع تصميم هذا حسب الحاجة. ما عليك سوى تغيير الحالة إلى المعلومات التي لديك.

1
ryanka

أنا أستخدم الكيان_الحمل () لتحميل كائن vocab الخاص بي ، واستلامه $ vid.

الحيلة هي تمرير false للمعلمات الثانية (وهي $ids) ثم الرجوع إلى taxonomy_vocabulary جدول في قاعدة بيانات mysql لمعرفة ما يمكنك تمريره كشروط. اخترت استخدام machine_name كما ترى بالاسفل:

$ids = false;
$conditions = array('machine_name' => 'my_vocabulary');
$vocab = entity_load('taxonomy_vocabulary', $ids, $conditions);

إذا كنت تعرف طريقة أسرع/أخف ، فيرجى تقديمها هنا:)

1
electblake

هذا للتحميل باستخدام استعلام حقل الكيان كما ذكر bojan:

$query = new entityFieldQuery();
$result = $query
  ->entityCondition('entity_type', 'taxonomy_vocabulary')
  ->propertyCondition('machine_name', 'my_vocabulary')
  ->execute();

if (empty($result['taxonomy_vocabulary'])) {
  return;
}

$vocabularies = taxonomy_vocabulary_load_multiple(array_keys($result['taxonomy_vocabulary']));
dpm($vocabularies);
0
Roy Segall

كانت هذه الطريقة الأسرع بالنسبة لي لرؤية قائمة بجميع معرفات المفردات عبر Drush:

  1. الاتصال بقاعدة البيانات الخاصة بك باستخدام الأمر Drush
    sqlc الحفر
  2. في موجه الخلية ، اكتب
    اختر * من تصنيف_المفردات ؛
0
peezy