it-swarm.asia

الفرق بين التصنيف الهرمي وغير الهرمي؟

والسؤال هو "ما هو الفرق بين التصنيف الهرمي وغير الهرمي؟" هذا السؤال أثار حيرتي حقًا في البداية لذا اعتقدت أنه سيكون من الجيد إظهار الفرق للآخرين الذين يتصفحون الموقع يبحثون عن التمييز.

يشير السؤال بالتحديد إلى الوسيطة hierarchical التي تم تمريرها إلى الدالة register_taxonomy(). بشكل أكثر تحديدًا ، ما الفرق بين هذا:

'التسلسل الهرمي' => خطأ

register_taxonomy('movie-genre', 'movie', array(
  'hierarchical'    => false,
  'label'           => 'Genre',
  'query_var'       => 'movie-genre',
  'rewrite'         => array('slug' => 'genres' ),
));

و هذا؟

'التسلسل الهرمي' => صحيح

register_taxonomy('movie-genre', 'movie', array(
  'hierarchical'    => true,
  'label'           => 'Genre',
  'query_var'       => 'movie-genre',
  'rewrite'         => array('slug' => 'genres' ),
));

لاحظ أنني سأمضي قدما وأجيب على سؤالي ، لكنني لن أحدده على أنه الأفضل ما لم يخطئ أي شخص آخر بإجابة جيدة للغاية أيضًا. كما يخبرني شعوري الغريزي أنني قد لا أمتلك أي تمييز بين الترددين ، إذا لم يكن الأمر كذلك ، فيرجى إخبارنا بما فاتني.

33
MikeSchinkel

الجواب البسيط هو أن المصطلحات في التصنيف الهرمي يمكن أن يكون لها المصطلحات الفرعية . لكن ماذا؟

'الهرمي' => كاذبة

عندما تحدد 'hierarchical'=>false ، فإنك تحصل على نوع metabox التالي وهو تنسيق metabox الذي يستخدمه WordPress أيضًا لـ Post Post :

Taxonomy Term Metabox in the Post Edit Screen when $hierarchical==false

"الهرمية '=> صحيح

ومع ذلك ، عندما تحدد 'hierarchical'=>true ، فإنك تحصل على نوع metabox التالي وهو تنسيق metabox الذي يستخدمه WordPress أيضًا لـ Categories :

Taxonomy Term Metabox in the Post Edit Screen when $hierarchical==true

بالطبع ، يشير المثال أعلاه أيضًا إلى أين يمكن أن يكون التصنيف الهرمي قليلاً من حقيبة مختلطة لأنه في كثير من الأحيان تنطبق الفئات الفرعية في الحياة الواقعية على العديد من فئات الآباء. على الرغم من ذلك ، لا يعد تقريب "العديد من الآباء" كيفية عمل تصنيفات التسلسل الهرمي في WordPress ، ولكن تصنيف IMO تمامًا أمر مستحيل تقريبًا بغض النظر عن كيفية عمل WordPress. لذلك التحذير الإمبراطور!

في تسجيل التصنيف المخصص ، أو "لماذا لن ينقذ؟"

على الرغم من عدم ارتباطك المباشر بالسؤال عما إذا كنت مبتدئًا يجرب تصنيفات مخصصة ، ( أو مطور متمرس لا يهتم كما حدث لي عندما كتبت هذا! ) فمن المحتمل أنك " ll حاول إضافة register_taxonomy() مثل التعليمة البرمجية التي تراها في السؤال مباشرةً في ملف functions.php الخاص بموضوعك. وجه الفتاة!

إذا أضفت الشفرة مباشرةً إلى functions.php ، فسيتم عرض metabox الخاص بك ، لكنه لن يحفظ المصطلحات المضافة حديثًا (وفي النموذج 'heirarchical'=>true من metabox ، لن يتم تحميل المصطلحات الحالية الخاصة بك مع مربعات اختيار). التصنيفات (وأنواع المنشورات المخصصة) داخل خطاف init ، مثل ذلك:

<?php
add_action('init','register_movie_genre_taxonomy');
  function register_movie_genre_taxonomy() {
    register_taxonomy('movie-genre', 'movie', array(
      'hierarchical'    => true,
      'label'           => 'Movie Genre',
      'query_var'       => 'movie-genre',
      'rewrite'         => array('slug' => 'genres' ),
    ));
}

أتمنى أن يساعدك هذا!

40
MikeSchinkel