في موضوع اليوم أقدم لكم أحد المفاهيم الهامة في تعلم تطوير قوالب ووردبريس وهو التعامل مع أجزاء القالب واستدعاؤها من خلال الدالة البرمجية الجاهزة في ووردبريس get_template_part.
إذا كنت مهتمًا بتطوير القوالب يمكنك الاطلاع على هذه الدورة المجانية لتعلم تطوير قوالب ووردبريس التي تعلمك تطوير القوالب من الألف للياء.
ما هي أجزاء قالب ووردبريس (TEMPLATE PARTS)
أجزاء قالب ووردبريس (Template parts) هي عبارة عن أقسام أو أجزاء غير مكتملة من ملفات التمبلت (ملفات PHP ضمن مجلد القالب) ويتم جلب هذه الأجزاء أو ربطها بملفات التمبلت من خلال الدالة get_template_part ().
اقرأ المزيد: ما الفرق بين Themesو Templatesفي ووردبريس
الفائدة الأساسية من إنشاء هذه الأجزاء قالب هي تجنب تكرار التعليمات البرمجية (أي كود في القالب قد تحتاج لنسخه ولصقه استخدام معه هذا الأسلوب)
فإذا كان لديك عدة ملفات تمبلت في الثيم الخاص بك تستخدم مجموعة من الأكواد أو التعليمات البرمجية المشتركة، فيمكن كتابة هذه التعليمات في ملف يضم هذا الكود المكرر وهذا يمكنك من تخزينه في مكان واحد واستدعائه متى ما أردت كما أنه يسهل عليك إجراء تعديلات على هذا الجزء.
تقبل الدالة get_template_part () دالتين تحددان معًا كلا من ملف جزء التمبلت المستهدف والملف الاحتياطي — وهو يعمل بطريقة مشابهة لطريقة عمل التسلسل الهرمي لقالب ووردبريس الذي يعود للملف index.php في حال لم يجد ملف التمبلت المناسب فالدالة get_template_part تبحث في مجلد القالب عن الجزء المستهدف وفي حال لم تجده تبحث عنه في القالب الأب.
ما هي دالة get_template_part () في ووردبريس
get_template_part () هي إحدى دوال ووردبريس التي تمكنك من تضمين أجزاء معينة من التمبلت أينما احتجت إليها. مما يقلل من تكرار الكود ويجعل ملفات التملبت الخاصة بالثيم أكثر قابلية للقراءة.
تملك الدالة الشكل العام التالي:
تسجيل الدخول لعرض الكود
البرامتر الأول slug للدالة يمثل اسم ملف الجزء
أما البرامتر الثاني name فهو يعطي الدالة المزيد من القوة وسنوضحه بعد قليل بالامثلة العملية
على سبيل المثال لاستدعاء أجزاء القالب مثل نص المقالات المنشورات في ملفات مختلفة (والتي عادة ما تكون جزءًا من التسلسل الهرمي للقالب).
على سبيل المثال في حال كان لدينا حلقة ووردبريس في ملف تمبلت القالب الأساسي index.php ضع هذا الكود في ملف مستقل لهذا الجزء وسمه content.php كما يلي:
تسجيل الدخول لعرض الكود
تسجيل الدخول لعرض الكود
تسجيل الدخول لعرض الكود
تسجيل الدخول لعرض الكود
تسجيل الدخول لعرض الكود
تسجيل الدخول لعرض الكود
تسجيل الدخول لعرض الكود
تسجيل الدخول لعرض الكود
ثم استدعه داخل ملف index.php بالشكل التالي باستخدام الدالة get_template_part ():
تسجيل الدخول لعرض الكود
تسجيل الدخول لعرض الكود
تسجيل الدخول لعرض الكود
تسجيل الدخول لعرض الكود
تسجيل الدخول لعرض الكود
تسجيل الدخول لعرض الكود
في هذه الحالة سيقوم ووردبريس بتحميل الملف index.php ويتعامل معه كما لو كانت محتويات الملف content.php موجودة بداخله. وبالتالي هذا يجنبنا إعادة كتابة نفس الكود المستخدم في ملفات مختلفة ضمن ثيم ووردبريس الخاص بنا.
تقسيم هذا الملف إلى قسمين له عدة فوائد فمن جهة أصبح كل من الملفين index.php و content.php مختصرين وأسهل في القراءة والفهم ومن جهة أخرى صار كود الثيم منظم ويمكن إعادة استخدام الكود الموجود في content.php من قبل ملفات تبملت أخرى مثل الملف home.php من خلال استدعاء الدالة get_template_part( 'content' ) ضمنه..
تجدر الملاحظة هنا بأن الاسم content.php اختياري وبالطبع يمكنك تسمية أجزاء التمبلت بأي شيء تريده يعبر عن محتوى الجزء المخزن بداخله.
ماذ نمرر للبرامتر الثاني للدالة get_template_part ؟
كي تفهم أهمية هذا البرامتر لنفترض أنك نستخدم ثيم ابن أو فرعي (Child theme) في هذه الحالة عندما تمرر برامترين للدالة بالشكل التالي:
تسجيل الدخول لعرض الكود
سيبحث ووردبريس بداية عن ملف يسمى firstargument-secondargument.php — كلا الوسيطتين مجتمعين ويفصل بينهما خط فاصل -. إذا لم يتم العثور على هذا الملف فسيعود ووردبريس إلى الملف firstargument.php ويستعمله.
وتجدر الإشاؤة لأن ووردبريس سيبحث بداية عن هذه الملفات أولاً في القالب الابن أو الفرعي للقالب الحالي في حال وجوده ثم في القالب الأصلي.
على سبيل المثال في حال كان لدينا ملف جزء باسم first.php وملف جزء باسم first-second.php ثم كتبنا ما يلي:
تسجيل الدخول لعرض الكود
سيبحث ووردبربس في هذه الحالة عن الملفات التالية بالترتيب:
- الملف first-second.php في ثيم الابن
- الملف first-second.php في ثيم الأب
- الملف first.php في ثيم الابن
- الملف first.php في ثيم الأب
أهمية تمرير برامترين للدالة get_template_part () بأمثلة عملية:
قد ترغب في تحديد جزء قالب content-page.php الذي يعمل خصيصًا للصفحات إذا كان هذا الملف مفقودًا ، فسيعود ووردبريس إلى الملف content.php وبهذا يمكن لووردبريس التعامل مع أي نوع معين من المحتوى.
يفيد تمرير المتغيرات إلى get_template_part في توفير إمكانية تخزين أشياء (مثل تنسيق البوست المخصص في ووردبريس) كمتغير ثم تمريرها إلى الدالة.
وهنا نجد فائدة إضافية لاستخدام هذه الدالة مع برامترين بدلاً من الاعتماد على دوال مثل include أو require في PHP هو أن هذه الدوال الأخيرة تجلب فقط ملفات جزء التمبلت المحدد وفي حال لم تجده سيحدث خطأ في الكود أما الدالة get_template_part فهي تتميز بوجود وسيطين يمكنان المطور من استدعاء ملفات احتياطية في حال عدم وجود الملف المحدد.
السبب الثاني والأكثر أهمية هو تمكين القوالب الأبناء من تعديل ملف الجزء، على سبيل المثال يمكن للقالب الابن إنشاء نسخته الخاصة من الملف content.php وباستخدام get_template_part () يمكن لمحتوى القالب الابن content.php أن يحل محل محتوى القالب الأب.
لذلك عندما يستخدم القالب الأب get_template_part يمكنك الاستفادة منه وكتابة الجزء الذي تريد تجاوزه فقط، ستساعدك ميزة get_template_part. وإذا كنت تطور القالب الخاص بك فينبغي عليك دائمًا استخدام get_template_part () كلما أمكنك ذلك لتسهيل تجاوزها من خلال القوالب الأبناء!
الخلاصة:
تعتبر الدالة get_template_part أحد الميزات القوية في تطوير قوالب ووردبريس وهي تمكنك من تطوير قالب بكود نظيف واحترافي وقابل للتجاوز في القوالب الابناء بسهولة كبيرة لذا لا تتردد في استخدامها عند تطوير قالبك.
اقرأ المزيد: طريقة استخدام الدالة get_template_part لتنظيم ملفات قالب ووردبريس