كيفية إنشاء تصنيفات مخصصة حصرية في WordPress

نشرت: 2022-03-11

يتم استخدام WordPress ، أحد أقوى أنظمة التدوين وإدارة المحتوى مفتوحة المصدر ، لتشغيل جزء كبير من الشبكات الداخلية. يعمل ما يصل إلى ربع مواقع الويب على WordPress ولا يوجد نقص في الطلب على خدمات تطوير WordPress.

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

ومع ذلك ، فإن جعل التصنيفات تتصرف بالطريقة التي تريدها بالضبط قد يتطلب منك العبث ببعض الأساليب غير الموثقة.

تمثيل رسومي لخيارات تصنيف WordPress المختلفة

في هذه المقالة ، ستتعلم كيف يمكنك تحديد التصنيفات المخصصة الحصرية في WordPress والتي تتصرف مثل الفئات أكثر من العلامات ، مما يسمح لك بتصنيف مشاركاتك بشكل أكثر صرامة مما يمكنك فعله خارج الصندوق.

ما هو التصنيف؟

وفقًا لملف ووردبريس:

التصنيف هو طريقة لتجميع الأشياء معًا.

على سبيل المثال ، يمكن تجميع مجموعة من أنواع الفاكهة المختلفة معًا وفقًا لخصائص مختلفة ومن ثم يمكن تعيين أسماء لهذه المجموعات.

في WordPress ، تُستخدم التصنيفات لتجميع المنشورات والصفحات وحتى أنواع المنشورات المخصصة ضمن مجموعات مختلفة.

تسمى أسماء المجموعات المختلفة في التصنيف بالمصطلحات . خذ الفواكه ، على سبيل المثال ، وكيف يمكن تجميعها بناءً على ألوانها. في هذه الحالة ، ستكون أسماء الألوان المختلفة هي المصطلحات.

بشكل افتراضي ، يأتي WordPress مدمجًا مع أربعة تصنيفات: الفئة والعلامة وفئة الارتباط وتنسيق المنشور . يمكنك معرفة المزيد حول هذه التصنيفات الافتراضية هنا.

من بين هذه التصنيفات المضمنة ، تتشابه الفئات والعلامات كثيرًا ولكن لها اختلاف مهم واحد: الفئات هي تصنيفات حصرية (على سبيل المثال ، لكل منشور ، يمكنك تحديد فئة واحدة على الأكثر) بينما يمكن تعيين علامات متعددة لكل منشور.

علاوة على ذلك ، عادةً ما يتم تحديد الفئات مسبقًا ، بينما يمكن تحديد العلامات أثناء التنقل.

تحديد التصنيفات المخصصة

يمكنك تحديد تصنيف مخصص باستخدام وظيفة register_taxonomy() . يمكنك معرفة المزيد عن الوظيفة هنا.

لمعرفة كيفية عمل هذه الوظيفة ، دعنا نحدد تصنيفًا مخصصًا للمشاركات التي تحتوي على صور للمشهد.

 function view_init() { register_taxonomy( 'view', 'post', array( 'label' => __( 'View' ), 'capabilities' => array( 'assign_terms' => 'edit_guides', 'edit_terms' => 'publish_guides' ) ) ); } add_action( 'init', 'view_init' );

في المقتطف أعلاه ، نحن نحدد تصنيفًا جديدًا للمشاركات التي تسمى طريقة العرض .

يمكنك التفكير في استخدام هذا التصنيف لتصنيف الصور بناءً على نوع أو طبيعة المناظر الموجودة في الصور (على سبيل المثال ، جبل أو بحيرة أو غابة).

كالعادة ، ستظهر المشاركات التي تنتمي إلى مصطلحات معينة من هذه الفئة ضمن / view / {view_name} .

سطر القدرات في المقتطف أعلاه اختياري. بدونها ، سيقوم WordPress بإعداد القدرات الافتراضية لنفس المستخدمين كمنشورات. كما هو مبين أعلاه ، سيسمح هذا لأي مستخدم لديه إمكانية "edit_guides" مخصصة لتعيين التصنيف إلى منشور وأي مستخدم لديه إمكانية "publish_guides" المخصصة لإنشاء عناصر تصنيف جديدة.

وفقًا للوثائق الرسمية ، هناك أربع إمكانيات يمكن تحديدها:

تتضمن إمكانيات التصنيف assignterms المهام ، editterms ، manageterms (تعرض التصنيف في تنقل المسؤول) deleteterms .

كيف تستخدم التصنيفات

ضمن التعليمات البرمجية الخاصة بك ، يمكنك استخدام الدالة wp_set_object_terms() لإضافة مصطلحات إلى الكائنات باستخدام التصنيف. يمكنك سرد المصطلحات الموجودة باستخدام وظيفة the_terms() . علاوة على ذلك ، يمكنك استخدام وظيفة wp_tag_cloud() لإنشاء سحابة من المصطلحات للتصنيف المخصص الخاص بك. يمكنك معرفة المزيد عن هذه الوظائف هنا.

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

إجبار الحصرية على التصنيفات

عندما ننشئ تصنيفًا مخصصًا باستخدام طريقة register_taxonomy() ، يضيف WordPress مربع تعريف به تحديد عناصر متعددة إلى صفحة تحرير المنشور:

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

لإنشاء تصنيف يشبه الفئة ، حيث تنتمي كل مشاركة إلى فئة واحدة على الأكثر من مجموعة من الفئات المحددة مسبقًا ، يمكنك القيام بذلك عن طريق تعديل WordPress قليلاً:

  • إخفاء مربع التعريف الافتراضي الذي تم إنشاؤه بواسطة WordPress.
  • قم بإنشاء مربع تعريف مخصص في صفحة تحرير المنشور والذي سيوفر عناصر تحكم لاختيار عنصر واحد.
  • احفظ قيمة التصنيف عند حفظ المنشور.

دعنا نلقي نظرة على كل خطوة من الخطوات.

إخفاء مربع التعريف الافتراضي الذي تم إنشاؤه بواسطة WordPress

لهذا ، نحتاج إلى ضبط show_in_quick_edit و meta_box_cb على false عند استدعاء register_taxonomy .

لقطة شاشة لمربع تعريف مخصص للتصنيف حيث يمكنك إضافة عناصر إلى مجموعة المصطلحات المتاحة

يخفي الخيار الأول التصنيف في لوحة التحرير السريع / المجمع ويخفيه الخيار الثاني في صفحة تحرير المنشور:

 register_taxonomy( 'custom_taxonomy', 'post', array( 'labels' => array( 'name' => 'Custom Exclusive Taxonomy' ), 'show_in_quick_edit' => false, 'meta_box_cb' => false ));

عندما يكون مربع التعريف الافتراضي مخفيًا ، يمكن إضافة العناصر إلى مجموعة الشروط المتاحة للتصنيف عبر صفحة إدارة التصنيف:

لقطة شاشة لمربع تعريف يسمى التصنيف الحصري المخصص مع العديد من أزرار الاختيار

قم بإنشاء Meta Box مخصص في صفحة تحرير المنشور

لإنشاء صندوق تعريف مخصص ، يمكننا استخدام add_meta_boxes WordPress hook. يمكنك معرفة المزيد عن الخطاف هنا.

 add_action('add_meta_boxes', 'add_custom_meta_box'); function add_custom_meta_box(){ add_meta_box( 'taxonomy_box', __('Custom Exclusive Taxonomy'), 'fill_custom_meta_box_content', 'post' ,'side'); }

نسمي طريقة add_meta_box التالية:

  • taxonomy_box - معرف مربع التعريف
  • __('Custom Exclusive Taxonomy') - عنوان مربع التعريف
  • fill_custom_meta_box_content - وظيفة تُستخدم لملء محتويات مربع التعريف
  • post - يشير هذا إلى أن مربع التعريف يجب أن يظهر في صفحة تحرير المنشور.
  • side - يشير هذا إلى المكان الذي يجب إدخال مربع التعريف فيه.

لاحظ كيف حددنا taxonomy_box باعتباره المعرّف. ومع ذلك ، فإن الوظيفة الموجودة في المعلمة الثالثة هي التي ستتيح لنا تحديد ما سيتم إدخاله في المربع.

سنقوم الآن بتنفيذ وظيفة fill_custom_meta_box_content :

 <?php function fill_custom_meta_box_content( $post ) { $terms = get_terms( array( 'taxonomy' => 'custom_taxonomy', 'hide_empty' => false // Retrieve all terms )); // We assume that there is a single category $currentTaxonomyValue = get_the_terms($post->ID, 'custom_taxonomy')[0]; ?> <p>Choose taxonomy value</p> <p> <?php foreach($terms as $term): ?> <input type="radio" name="custom_taxonomy" value="<?php echo $term->term_id;?>"<?php if($term->term_id==$currentTaxonomyValue->term_id) echo "checked"; ?>> <label for="taxonomy_term_<?php echo $term->term_id;?>"><?php echo $term->name; ?></label> </input><br/> <?php endforeach; ?> </p> <?php }

هنا ، نقوم أولاً باسترداد جميع المصطلحات (أي القيم الحالية) للتصنيف. سنستخدمها لعرض قائمة بعناصر تحكم زر الاختيار.

بعد ذلك ، نسترجع مصطلح التصنيف المحدد حاليًا باستخدام get_the_terms() - نحتاج إليها لجعل زر الاختيار المعني محددًا.

لاحظ أن هذه الدالة ترجع مصفوفة. هذا لأنه ، بشكل افتراضي ، يمكن أن يحتوي المنشور على أي عدد من المصطلحات المرتبطة به. من خلال افتراضنا ، فإن المنشور يحتوي على مصطلح واحد على الأكثر ، لذلك نصل إلى عنصر المصفوفة الأول. (لا بأس إذا كانت المصفوفة فارغة ؛ سنحصل على قيمة null كقيمة حالية ولن يتم تحديد أي زر اختيار.)

يستخدم كود إصدار HTML custom_taxonomy كاسم لأزرار الاختيار ومعرفات المصطلحات المقابلة كقيم لها ؛ تُستخدم سمات معرف زر الاختيار فقط للاتصال بعلامات التسمية. نتيجة لذلك ، نحصل على صندوق التعريف المخصص التالي:

لقطة شاشة لميزة "إضافة علامة جديدة" الخاصة بالتصنيف الحصري المخصص متاحة الآن على الشريط الجانبي للوحة تحكم WordPress

احفظ قيمة التصنيف عند حفظ المنشور

أخيرًا ، نحتاج إلى الحفاظ على قيمة التصنيف عند حفظ المنشور. لهذا ، يمكننا استخدام الخطاف save_post :

 add_action('save_post', 'save_custom_taxonomy'); function save_custom_taxonomy($post_id){ if ( isset( $_REQUEST['custom_taxonomy'] ) ) wp_set_object_terms($post_id, (int)sanitize_text_field( $_POST['custom_taxonomy'] ), 'custom_taxonomy'); }

وهذا كل شيء! لقد إنتهينا.

أنت تعرف الآن كيفية تحديد تصنيف مخصص يتصرف مثل تصنيف الفئات المضمن.

ملاحظة: قبل WordPress طلب ميزة لتسهيل تبديل الحصرية للتصنيفات المخصصة. ومع ذلك ، لم تشهد التذكرة الكثير من النشاط لفترة من الوقت.

يتم إحتوائه

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

يمكن أيضًا استخدام النهج المقدم هنا لإنشاء واجهة مستخدم أكثر تخصيصًا على صفحات تحرير النشر لاختيار مصطلح التصنيف.

آمل أن تكون قد وجدت هذا البرنامج التعليمي السريع حول تحديد التصنيفات المخصصة الحصرية مفيدًا!