WordPress Meta Boxes - دليل سريع

نشرت: 2021-01-20

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

هيا بنا نبدأ!

الحقول المخصصة ومربعات التعريف والبيانات الوصفية

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

البيانات الوصفية

البيانات الوصفية للمنشور هي المعلومات الإضافية حول المنشور التي يتم تخزينها في جدول بيانات قاعدة البيانات.

يعتبر كل زوج مفتاح / قيمة "حقل نشر". لا توجد حدود لعدد إدخالات التعريف التي يمكن أن يحتوي عليها هذا الجدول.

الحقول المخصصة

هناك حقول محددة مسبقًا بواسطة WordPress مثل صورة الميزة وهي حقول مخصصة تقنيًا. يمكن إضافة البعض الآخر بواسطة مكون إضافي أو رمز مخصص وتحديده بواسطة المستخدم المسؤول. يمكنك معرفة المزيد عن الحقول المخصصة من خلال قراءة مقالتنا "الشروع في استخدام حقول WordPress المخصصة".

Metaboxes

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

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

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

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

إنشاء Meta Box لنوع المنشور المخصص الخاص بنا

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

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

الخطوة 1 - تسجيل Meta Box

لإضافة مربع تعريف في نوع المنشور المخصص لدينا ، نستخدم وظيفة add_meta_box التي يوفرها WordPress. فيما يلي هيكل الوظيفة مع الحجج التي سنستخدمها:

 add_meta_box( $id, $title, $callback, $screen, $context )

بالنسبة للمعرف الفريد سنستخدم is_vegan وبالنسبة لعنوان مربع التعريف ، سنستخدم السلسلة Is Vegan .

ستكون وظيفة رد الاتصال لإظهار محتوى الصندوق هي display_vegan_meta_box . تشير السمة $screen إلى شاشة المسؤول التي سيتم عرض مربع التعريف عليها. في حالتنا ، هذه هي منطقة تحرير المنشور الخاصة بالوصفة ، لذلك سيكون اسم نوع المنشور الفريد الذي هو recipes كما ذكرنا من قبل. يختلف معامل $context وفقًا لشاشة المسؤول.

تتضمن سياقات شاشة تحرير النشر التي سنستخدمها هنا القيم العادية والجانبية والمتقدمة كقيم السياق المتاحة. سنستخدم القيمة الجانبية لعرض مربع التعريف في الشريط الجانبي لصفحة تحرير المنشور.

لذلك ، باختصار ، باستخدام المعلمات المحددة أعلاه ، يجب أن تبدو الشفرة التي يجب أن نضيفها في my-custom-post-type.php كما يلي:

 function my_metabox() { add_meta_box( 'is_vegan', 'Is Vegan', 'display_vegan_meta_box', 'recipes', 'side' ); } add_action( 'admin_init', 'my_metabox' );

كما سترى ، استخدمنا الخطاف admin_init الذي يتم تشغيله قبل أي خطاف آخر عندما يصل المستخدم إلى منطقة الإدارة.

الآن ، إذا قمت بزيارة صفحة تحرير منشور وصفة ، يجب أن ترى المربع في الشريط الجانبي. بالطبع المحتوى فارغ حاليا.

الخطوة التالية هي ملء المربع بالمحتوى المطلوب.

الخطوة 2 - عرض محتوى Meta Box الأساسي

سنبقي محتوى هذا المربع بسيطًا. كل ما نحتاجه هو وصف ومربع اختيار. كما ذكرنا ، يتم إرجاع المحتوى في وظيفة display_vegan_meta_box .

يرجى المتابعة وإضافة جزء الكود أدناه ضمن وظيفة my_metabox :

 function display_vegan_meta_box( $recipe ) { ?> <span class="title">Vegan recipe?</span> <span class="content"> <label for="vegan_checkbox"> <input type="checkbox" name="vegan_checkbox" value="yes" /> </label> </span> <?php }

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

الخطوة 3 - احفظ قيمة Meta Box في قاعدة البيانات

لحفظ قيمة حقول الإدخال في صندوق التعريف ، نستخدم خطاف الإجراء save_post الذي يوفره WordPress على النحو التالي:

 function update_vegan_box( $post_id ) { if( !current_user_can( 'edit_post' ) ) return; if ( 'recipes' == get_post_type() ) { if ( isset( $_POST['vegan_checkbox'] ) && $_POST['vegan_checkbox'] != '' ) { update_post_meta( $post_id, 'is_vegan', $_POST['vegan_checkbox'] ); }else { update_post_meta( $post_id, 'is_vegan', "no" ); } } } add_action( 'save_post', 'update_vegan_box' );

داخل دالة update_vegan_bo x مع الوسيطة $post_id قمنا بتضمين بعض الشروط. نريد أولاً التحقق مما إذا كان المستخدم لديه إذن بتعديل المنشور وكذلك التأكد من أننا نقوم بتحرير نوع recipes .

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

استخدمنا هنا update_post_meta في وظيفة ووردبريس update_post_meta( $post_id, $meta_key, $meta_value, $prev_value = '' )

في الوسيطات الخاصة به ، حددنا معرّف المشاركة ، والمفتاح الميتا ، والقيمة الوصفية. يمكن أن تقبل الدالة وسيطة واحدة أخرى ، وهي $prev_value
في حالة رغبتنا في التحقق من القيمة السابقة قبل التحديث وفقط إذا كانت متساوية ، فتابع وقم بالتحديث.

الخطوة 4 - صقل كود محتوى Meta Box

الآن دعنا نعود إلى الوظيفة السابقة التي تُخرج محتوى meta box ونضيف المزيد من سطور التعليمات البرمجية التي تسترد البيانات ذات الصلة من قاعدة البيانات.

 function display_vegan_meta_box( $recipe ) { $is_value = esc_html( get_post_meta( $recipe->ID, 'is_vegan', true ) ); $checked; if ( $is_value == "yes" ) { $checked = "checked"; } else if ( $is_value == "no" ) { $checked = ""; } else { $checked="";} ?> <span class="title">Vegan recipe?</span> <span class="content"><label for="vegan_checkbox"> <input type="checkbox" name="vegan_checkbox" value="yes" <?php echo $checked; ?> /> </label></span> <?php }

لذلك ، أولاً ، نقوم باسترداد القيمة الوصفية is_vegan ثم إذا كان ذلك مناسبًا ، سيتم تمرير القيمة checked إلى المتغير المحدد $checked وسيتم ترديد صدى في إخراج HTML.

وهذا كل شيء. لدينا الآن مربع تعريف عامل يمكن استخدامه لتحديد ما إذا كانت الوصفة في منشورنا المخصص نباتية أم لا.

استنتاج

توفر صناديق التعريف مستوى أعلى من التحكم والمرونة في المنشورات ويمكن الاستفادة منها بعدة طرق. ما يميزهم بشكل خاص هو أنهم منفصلون عن بقية محتوى المنشور بينما يقيمون في نفس الوقت على نفس شاشة المسؤول مما يجعل إدارتهم أسهل بكثير مما لو كانوا موجودين في مكان آخر في WordPress Admin.

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