في بعض الأحيان، قد لا تكون حقول نوع المنشور المخصص الافتراضية كافية، وقد تحتاج إلى تخزين بيانات إضافية في نوع منشور مخصص.
لحسن الحظ، يدعم WordPress ما يُسمى بالبيانات الوصفية للمنشور، مما يتيح لك تخزين معلومات إضافية حول منشور.
لِنلقِ نظرة على كيفية استخدام البيانات الوصفية للمنشور مع منشور أو نوع منشور مخصص.
ما هي البيانات الوصفية للمنشور؟
البيانات الوصفية للمنشور هي طريقة لتخزين معلومات إضافية حول منشور في قاعدة بيانات WordPress.
تُخزَّن البيانات الوصفية للمنشور في جدول postmeta على هيئة أزواج من المفتاح والقيمة. إذا نظرت إلى جدول postmeta في قاعدة بيانات WordPress، فسترى أنه يحتوي على أربعة أعمدة: meta_id وpost_id وmeta_key وmeta_value.
post_id هو معرّف المنشور المرتبط به البيانات الوصفية. وmeta_key هو اسم حقل البيانات الوصفية، بينما meta_value هي قيمته.
إضافة البيانات الوصفية للمنشور
يمكنك إضافة البيانات الوصفية إلى منشور باستخدام add_post_meta الدالة. تأخذ هذه الدالة ثلاث معاملات: معرّف المنشور، واسم البيانات الوصفية، وقيمة البيانات الوصفية.
لنفترض أنك تريد إضافة حقل بيانات وصفية إلى منشور ذي معرّف 1، وتريد تخزين الموقع الذي كُتب فيه المنشور على أنه London.
يمكنك استخدام الشيفرة التالية:
add_post_meta( 1, 'location', 'London' );
توجد دوال أخرى للعمل مع البيانات الوصفية للمنشور، مثل update_post_meta وdelete_post_meta وget_post_meta.
يمكنك قراءة المزيد عنها وعن كيفية استخدامها في الإضافات في صفحة البيانات الوصفية في دليل مطوّري الإضافات.
لوحة الحقول المخصصة
تُعد إضافة البيانات الوصفية للمنشور عبر الشيفرة إحدى الطرق، ولكن من الممكن أيضًا تمكين مسؤولي الموقع من إضافة البيانات الوصفية للمنشور عبر واجهة إدارة WordPress.
إحدى طرق القيام بذلك هي استخدام لوحة الحقول المخصصة لنوع المنشور.
لتمكين لوحة الحقول المخصصة، ستحتاج أولًا إلى التأكد من أن نوع المنشور المخصص يدعم البيانات الوصفية.
للقيام بذلك، تحتاج إلى إضافة الوسيطة supports أو تحديثها لتتضمن دعم custom-fields
بعد ذلك، عند تحرير نوع منشور مخصص، انقر على أيقونة الخيارات في المحرر، وحدد التفضيلات، وانقر على اللوحات، ثم فعّل مفتاح الحقول المخصصة.
سيؤدي ذلك إلى تحديث المحرر، وسترى لوحة الحقول المخصصة في أسفل الشاشة.
يمكنك هنا إضافة حقل مخصص جديد ومنحه اسمًا وقيمة.
على سبيل المثال، إذا أردت إضافة رقم ISBN لكتاب، فيمكنك إضافة حقل مخصص جديد بالاسم isbn وقيمة رقم ISBN.
تستخدم هذه اللوحة الدالة add_post_meta لإضافة البيانات الوصفية إلى المنشور.
أسماء الحقول المعبأة مسبقًا في لوحة الحقول المخصصة
من الممكن أيضًا ملء حقل الاسم في لوحة الحقول المخصصة بقائمة من حقول البيانات الوصفية المحددة مسبقًا.
للقيام بذلك، تحتاج إلى الربط مع postmeta_form_keys المرشّح وإضافة أسماء حقول البيانات الوصفية التي تريد عرضها في لوحة الحقول المخصصة.
يُنفَّذ المرشّح postmeta_form_keys قبل عرض HTML الخاص بلوحة الحقول المخصصة، ويمرّر معاملين: مصفوفة من مفاتيح البيانات الوصفية، وكائن المنشور.
إذا لم يتم تحديد مفاتيح أخرى، فسيتم تشغيل استعلام لجلب مفاتيح أي بيانات وصفية موجودة للمنشور.
لذلك، من خلال تحديث مصفوفة مفاتيح البيانات الوصفية، يمكنك إضافة مفاتيح حقول البيانات الوصفية إلى لوحة الحقول المخصصة، مما يسهل على المستخدمين إضافة البيانات الوصفية الصحيحة.
إليك مثالًا على كيفية القيام بذلك:
add_filter( 'postmeta_form_keys', 'bookstore_add_isbn_to_quick_edit', 10, 2 );
function bookstore_add_isbn_to_quick_edit( $keys, $post ) {
if ( $post->post_type === 'book' ) {
$keys[] = 'isbn';
}
return $keys;
}
تسجّل دالة استدعاء خلفي في المرشّح postmeta_form_keys، وتضبط الوسائط المقبولة على 2 لقبول كلا المعاملين من المرشّح.
بعد ذلك، تحقّق مما إذا كان نوع المنشور هو كتاب، وإذا كان كذلك، فأضف الخيار isbn إلى مصفوفة $keys، ثم أعد تلك المصفوفة.
إذا كان نوع المنشور هو book، فسيضيف حقل البيانات الوصفية isbn إلى لوحة الحقول المخصصة.
إذا أنشأت كتابًا أو حررته مع تمكين لوحة الحقول المخصصة، فسترى حقل isbn متاحًا لإضافة البيانات الوصفية إلى المنشور.
صناديق البيانات الوصفية المخصصة
هناك طريقة أخرى للسماح لمسؤولي الموقع بإضافة البيانات الوصفية للمنشور، وهي استخدام صناديق البيانات الوصفية المخصصة.
ومع ذلك، يتطلب العمل مع صناديق البيانات الوصفية المخصصة أيضًا فهمًا جيدًا للتطوير مع مراعاة الأمان، ولكن يمكنك الآن القراءة عنها في صفحة صناديق البيانات الوصفية المخصصة في دليل مطوّري الإضافات.
ستتعلم كيفية العمل مع صناديق البيانات الوصفية ضمن مسار تعلّم مطوّري الإضافات.