استخدام العلامات الشرطية في ووردبريس

نشرت: 2012-12-27

دعنا نلقي نظرة على كيفية تنفيذ وظائف مخصصة في مواقع ربط مختلفة للسمات الخاصة بك بناءً على شروط معينة يتم استيفائها والعودة بنعم.

إذا كنت تستخدم إطار عمل موضوعًا متميزًا مثل Genesis ، فسيكون لديك حق الوصول إلى دليل المستخدمين.

يحتوي دليل المستخدم بشكل عام على مقتطفات التعليمات البرمجية التي تحتوي على وظائف مخصصة.

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

يمكن تنفيذ هذه الوظائف المخصصة في مواقع سمات محددة باستخدام خطافات عمل السمات الخاصة بك.

كل ما عليك فعله هو لصق مقتطف الشفرة في ملف function.php الخاص بالسمات الطفل لتخصيص وظائف السمة الخاصة بك.

يستخدم كل إطار للقوالب خطاطيف مختلفة ، إلا أنهم يفعلون نفس الشيء إلى حد كبير ، إلا أنهم يطلقون عليهم أسماء مختلفة مثل:

 thesis_after_post genesis_after_post woo_post_after

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

ولكن ماذا لو كنت تريد فقط تنفيذ الوظيفة المخصصة في موقع ربط معين بناءً على شروط معينة مثل؟ فمثلا:

  • فقط في المشاركات الفردية: is_single ()
  • فقط على المشاركات في فئة معينة: is_category ()
  • فقط في صفحة الأرشيف: is_archive ()
  • فقط في الصفحة الرئيسية: is_home ()

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

ملاحظة: قد ترغب في اختبار هذه العلامات باستخدام مقتطفات التعليمات البرمجية لوظائفك المخصصة في إعداد محلي قبل إضافة الرمز إلى موقع مباشر.

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

إذن كيف يمكنني استخدام العبارات الشرطية؟

أمثلة على العلامات الشرطية

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

 is_home() is_category() is_single() is_page()

أولاً ، دعنا نلقي نظرة على استخدام العلامات الشرطية بناءً على عبارات متعددة.

is_single و in_category

 if (is_single() && in_category('134'))
 if (is_single() && in_category('web-design'))

كل من مقتطفات التعليمات البرمجية هذه تفعل الشيء نفسه تمامًا وتحتوي على علامتين شرطيتين.

يستخدم الأول معرّف الفئة 134 ويستخدم الثاني فئة "تصميم الويب".

لن يتم تنفيذ أي وظيفة تقوم بتضمينها مع هذا الرمز إلا على مشاركات فردية في الفئة التي تحتوي على معرّف منشور يبلغ 134 أو صفحة "تصميم ويب". من الواضح أن هذا هو فئة تصميم الويب.

المعلمات

كما ترى في المثال أعلاه ، يمكنك استخدام معلمات مختلفة بعلامات شرطية مثل:

  1. بعد معرف
  2. عنوان الوظيفة
  3. آخر سبيكة

بعض العلامات الشرطية مثل علامة is_home () لا تستثني أي معلمات ربما لأنها لا تحتاج إلى أي منها.

is_page

 if (is_page('4289'))
 if (is_page('contact'))

كلتا العلامتين الشرطيتين تفعلان نفس الشيء تمامًا أيضًا.

يستخدم الأول معرف نشر الصفحات 4289 والثاني اسم الصفحة والارتباط التقريبي "جهة الاتصال".

سيتم تنفيذ الوظائف التي تقوم بتضمينها مع هذه العلامة فقط على صفحة الاتصال.

العلامات الشرطية للصفحة الرئيسية

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

is_home

 if (!is_home()

يحتوي هذا الرمز على! قبل العلامة الشرطية home_page بحيث يستبعد الصفحة الرئيسية من الوظيفة.

 if (is_home()

ينشئ هذا الرمز شرطًا ينطبق فقط على الصفحة الرئيسية فقط.

مثال العمل

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

 add_action( 'genesis_entry_footer', 'add_content_after_single_posts' ); function add_content_after_single_posts() { if ( is_singular('post') ) { echo 'Content Added After Single Post Entry Footer'; } }

يستخدم الكود أعلاه موضع الخطاف genesis_entry_footer مع is_singular('post') ويطبع النص بعد المحتوى في المنشورات الفردية فقط. هذا مثال كلاسيكي يوضح كيفية استخدام العلامات الشرطية في وظيفة مخصصة مع خطافات عمل السمات الخاصة بك.

العلامات الشرطية مع المصفوفات

يمكنك أيضًا إضافة مصفوفة إلى جملتك الشرطية.

is_page (مجموعة

 if (is_page(array('contact','37290'))

يمكنك إضافة المزيد من الصفحات إلى هذه المصفوفة ببساطة عن طريق تضمينها في هذه المصفوفة مفصولة بفاصلة.

سيتم تنفيذ هذه الوظيفة فقط على صفحة الاتصال والصفحة التي تحتوي على معرف المنشور 37290.

إخراج نص / HTML

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

 if ( ! is_home()) { echo'Your Text Here'; }

لنأخذ وظيفة مشتركة مع Action Hook ونضيف علامة شرطية.

العلامات الشرطية في سفر التكوين

يمكنك بسهولة إضافة أحد مقتطفات رمز Genesis لاستخدامها في سمات StudioPress وتضمين علامة شرطية مع الكود.

 /** Add custom body class to video category */ add_filter( 'body_class', 'add_body_class' ); function add_body_class( $classes ) { if ( is_category( 'video-tutorials' ) ) $classes[] = 'custom-class'; return $classes; }

يمكّن هذا الرمز المستخدم من تصميم صفحة فئة الفيديو باستخدام فئة مخصصة.

المعلمة المستخدمة هي slug للفيديو التعليمي ولكن يمكنك استخدام post.id أو العنوان في علامتك الشرطية.

العلامات الشرطية في الرسالة

لنأخذ وظيفة مخصصة من دليل مستخدم سمات DIY ونضيف بيانًا شرطيًا.

 function hide_nav_menu() { if(is_page ( 'contact-page' ) ) remove_action ( 'thesis_hook_before_header', 'thesis_nav_menu' ); } add_action ( 'thesis_hook_before_html','hide_nav_menu' );

سيؤدي هذا إلى إخفاء قائمة التنقل في صفحة الاتصال فقط.

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

أين نضع المدونة؟

إذا كنت تستخدم إطار عمل موضوعًا متميزًا ، فيمكنك لصق الكود في ملف function.php الخاص بالسمات الفرعية.

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

  • Woo hook manager
  • خطاف سفر التكوين البسيط
  • الأطروحة ، التقدم و WordPress Hooks

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

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

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

علامات وأمثلة شرطية لـ WordPress

ستجد قائمة بجميع علامات WordPress الشرطية مع أمثلة في WordPress Codex.

العلامات الشرطية الخاصة بالموضوع

تستخدم بعض السمات المميزة أيضًا العلامات الشرطية الخاصة بهم والتي تكون فريدة من نوعها لإطار عمل السمات الخاص بهم.

Woo Commerce هي واحدة من هذه: أمثلة:

 is_woocommerce() - Returns true if on a page which uses WooCommerce templates is_product_category() - Returns true when viewing a product category archive is_checkout() - Returns true on the checkout page.

تعرف على المزيد حول استخدام العلامات الشرطية مع Woo Commerce.

استنتاج

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