فهم وورد مخصص ميتا صندوق
في المنشور السابق ، تحدثنا عن حقل WordPress المخصص ، والذي يسمح لك بإضافة وإخراج إدخال جديد في منشور باستخدام مربع الحقل المخصص الذي يوفره WordPress في شاشة تحرير النشر. إذا كنت غير مرتاح باستخدام مربع الحقل المخصص (لدينا جميعًا تفضيلاتنا الفردية) ، فإليك بديلًا: يمكنك إنشاء مربع تعريف.
صندوق التعريف هو مربع مخصصة التي نخلقها من تلقاء نفسها ، والتي قد يحتوي على مدخلات أو واجهة مستخدم تفاعلية أخرى لإضافة إدخالات جديدة المشاركات أو الصفحات. يمكنك استخدام مربع التعريف بدلاً من مربع "الحقل المخصص" للقيام بالشيء نفسه. دعونا نرى كيفية إنشاء واحدة.
المزيد على Hongkiat.com:
- تخصيص دليل تحميل الوسائط في وورد
- تخصيص أنماط محرر WordPress
- يعدل أو يكيف “مرحبا” في شريط المسؤول WordPress
- تسجيل التصنيف المخصص لمستخدمي WordPress
- عرض الرموز في قائمة وورد
إنشاء صندوق التعريف
يقدم WordPress وظيفة API ، تسمى add_meta_box
, مما يتيح لنا إنشاء صندوق التعريف على الفور. هذا هو في شكله الأساسي للغاية.
function add_post_reference () add_meta_box ('post-reference'، 'Reference'، 'referenceCallBack'، 'post')؛ add_action ('add_meta_boxes'، 'add_post_reference')؛ دالة مرجعية CalBack () صدى 'Hello World'
ال add_meta_box
يأخذ أربعة معلمات: المعرف ، وعنوان مربع التعريف ، وظيفة رد الاتصال التي ستستدعي "Hello World" ، ونوع المنشور الذي نريد عرضه. في هذه الحالة ، نقوم بتعيين مربع تعريف جديد في صفحة تحرير النشر (يعمل هذا أيضًا مع الصفحات).
في قسم تحرير النشر ، ستجد مربعًا جديدًا ، كما يلي.
سيظهر مربع التعريف الجديد ، كما ترى أعلاه ، أسفل محرر WYSIWYG. إذا كنت ترغب في إضافته في الشريط الجانبي ، يمكنك إضافة "جانب" بعد معلمة النشر ، بالإضافة إلى "مرتفع" إذا كنت تريد وضعه في الجزء العلوي من الشريط الجانبي.
function add_post_reference () add_meta_box ('post-reference'، 'Reference'، 'referenceCallBack'، 'post'، 'side'، 'high')؛ add_action ('add_meta_boxes'، 'add_post_reference')؛
ستجده الآن فوق نشر صندوق…
الآن لاستبدال نص "Hello World" هناك. دعنا نضيف عناصر مثل حقل الإدخال لإدخال جديد.
في هذا المثال ، سنضيف حقلين للإدخال يتكونان من حقل لإضافة الاسم المرجعي والآخر للرابط المرجعي:
دالة referenceCallBack ($ post) wp_nonce_field ('reference_meta_box'، 'reference_nonce')؛ $ name_value = get_post_meta ($ post-> ID ، '_post_reference_name' ، صواب) ؛ $ link_value = get_post_meta ($ post-> ID ، '_post_reference_link' ، صواب) ؛ صدى صوت ''؛ صدى صوت ''؛ صدى صوت '". "أضف اسم المرجع".
'؛ صدى صوت ''؛ صدى صوت ''؛ صدى صوت '". "أضف رابط المرجع".
'؛
قم بتحديث صفحة تحرير النشر ، وستظهر لك هذه المدخلات المضافة.
ال $ NAME_VALUE
و $ link_value
سوف متغير استرداد الإدخالات من قاعدة البيانات ونشرها في حقول الإدخال. للحصول على الإدخالات في قاعدة البيانات ، سنحتاج إلى إنشاء وظيفة لذلك.
نحتاج إلى إضافة بضعة سطور من التعليمات البرمجية التي ستملأ الإدخالات المضافة من خلال هذه المدخلات في قاعدة البيانات بأمان. “بسلام” هنا تعني إدخالًا شرعيًا ومصرحًا به (وليس الإدخال القادم من المتسللين أو غيرهم من الأفراد غير المصرح لهم). لحفظ الإدخال ، سيتعين علينا إنشاء وظيفة جديدة. دعونا اسم الوظيفة: save_post_reference
, مثل ذلك.
function save_post_reference ($ post_id) add_action ('save_post'، 'save_post_reference')؛
كما ذكرنا ، نحتاج إلى التحقق من بعض الأشياء لأغراض أمنية:
(1) سنحتاج إلى التحقق مما إذا كان المستخدم لديه القدرة على تحرير منشور.
if (! current_user_can ('edit_post'، $ post_id)) return؛
(2) نحن بحاجة أيضا إلى تحقق مما إذا تم تعيين Nonce.
if (! isset ($ _POST ['reference_nonce'])) return؛ if (! wp_verify_nonce ($ _POST ['reference_nonce']، 'reference_meta_box')) return؛
(3) بعد ذلك ، نحتاج إلى منع حفظ البيانات تلقائيًا. إنقاذ يمكن أن يتم إلا مرة واحدة “حفظ” أو “تحديث” تم النقر فوق الزر.
إذا (معرّف ('DOING_AUTOSAVE') && DOING_AUTOSAVE) return؛
(4) سيكون لدينا أيضا لضمان أن لدينا اثنين من المدخلات, post_reference_name
و post_reference_link
, تم إعدادها وجاهزة قبل إرسال الإدخالات.
if (! isset ($ _POST ['post_reference_name']) ||! isset ($ _POST ['post_reference_link'])) return؛
(5) ويجب أن يكون الإدخال خاليًا من أي أحرف غير متوقعة قد تهدد أمان موقع الويب. للتحقق من ذلك ، يمكنك استخدام وظيفة WordPress المدمجة sanitize_text_field
.
$ reference_name = sanitize_text_field ($ _POST ['post_reference_name']) ؛ $ reference_link = sanitize_text_field ($ _POST ['post_reference_link']) ؛
حسنًا ، نحن الآن على استعداد لحفظ الإدخالات في قاعدة البيانات:
update_post_meta ($ post_id ، '_post_reference_name' ، $ reference_name) ؛ update_post_meta ($ post_id ، '_post_reference_link' ، $ reference_link) ؛
يمكنك الآن تجربتها: إدخال بعض المحتويات في حقول الإدخال ، وانقر فوق “تحديث” زر لحفظها.
استنتاج
لقد أنشأنا للتو صندوق تعريف يحتوي على مدخلات اثنين. يمكنك تمديد المربع مع أنواع أخرى من المدخلات مثل زر الاختيار أو مربع التحديد. قد يكون هذا المثال أساسيًا للغاية ، ولكن بمجرد تعطله ، ستتمكن من استخدام مربع التعريف هذا لاستخدامات أكثر تعقيدًا. أخبرنا ما إذا كنت ستستخدم هذا وما ستستخدمه من أجله.