WordPress: إنشاء أشرطة جانبية تلقائيًا لكل فئة

وظيفة لتسجيل الأشرطة الجانبية لكل فئة من فئات WordPress

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

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

ووردبريس الجانبية

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

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

function add_category_sidebars() {
    $args = array(
        'type'                     => 'post',
        'orderby'                  => 'name',
        'order'                    => 'ASC',
        'hide_empty'               => 1,
        'hierarchical'             => 1,
        'exclude'                  => '',
        'include'                  => '',
        'number'                   => '',
        'taxonomy'                 => 'category'
        ); 
    
    $categories = get_categories($args);

    foreach ($categories as $category) {
        if (0 == $category->parent)
            register_sidebar( array(
                'name' => $category->cat_name,
                'id' => $category->category_nicename . '-sidebar',
                'description' => 'This is the ' . $category->cat_name . ' widgetized area',
                'before_widget' => '<aside id="%1$s" class="widget %2$s">',
                'after_widget' => '</aside>',
                'before_title' => '<h3 class="widget-title">',
                'after_title' => '</h3>',
            ));
        }
}
add_action( 'widgets_init', 'add_category_sidebars' );

باستخدام مصفوفة الوسائط لاسترداد الفئات ، يمكنني تضمين واستبعاد أي فئات أرغب في استهدافها. ضمن بيان foreach ، يمكنني تعديل التنسيق ومطابقته مع تنسيق الشريط الجانبي لموقع WordPress الخاص بي.

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

function is_sidebar_active($cat_name) {
    global $wp_registered_sidebars;
    $cat_id = get_cat_ID($cat_name);
    $widgetlist = wp_get_sidebars_widgets();
    if ($widgetlist[$cat_id])
        return true;
    return false;
}

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

$queried_object = get_queried_object();
if ($queried_object) {
    $post_id = $queried_object->ID;
}
if(is_category() || in_category($cat_name, $post_id)) {
    $sidebar_id = sanitize_title($cat_name);
    if( is_sidebar_active($sidebar_id)) {
        dynamic_sidebar($sidebar_id);
    }
}

أشرطة ووردبريس الجانبية لكل فئة

والنتيجة هي بالضبط ما أردت:

أشرطة جانبية لأداة WordPress لكل فئة

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

ما رأيك؟

يستخدم هذا الموقع نظام Akismet لتقليل الرسائل الضارة. تعرف كيف تتم معالجة بيانات تعليقك.