وردپرس: برای هر گروه به صورت خودکار ستون های فرعی ایجاد کنید

عملکرد ثبت نوارهای کناری برای هر دسته وردپرس

من این سایت را برای بهبود زمان سرعت و تلاش برای کسب درآمد بهتر از سایت بدون تحریک خوانندگانم ساده کرده ام. روش های مختلفی وجود دارد که من از سایت کسب درآمد کرده ام ... در اینجا آنها از بیشترین سود تا حداقل سودآور هستند:

  • حمایت مالی مستقیم از شرکتهای همکار ما روی استراتژیهای جمعی کار می کنیم که شامل همه چیز از وبینارها گرفته تا اشتراکات رسانه های اجتماعی برای تبلیغ رویدادها ، محصولات و یا خدمات آنها است.
  • بازاریابی وابسته از مجموعه ای از سیستم عامل های وابسته. من شرکت ها را جستجو و شناسایی می کنم ، از معتبر بودن آنها اطمینان حاصل می کنم و مقالات خاصی را که می نویسم یا تبلیغاتی را که ارائه می دهند به اشتراک می گذارم.
  • بازاریابی منابع از شریکی که آزاد می کند رویدادهای مرتبط با بازاریابی ، مطالعات موردی و مقاله های سفید.
  • تبلیغات بنر از Google که تبلیغات مربوطه به طور خودکار از طریق الگو و محتوای من پخش می شود.

ستون های کناری وردپرس

با بازاریابی وابسته با درآمد مناسب ، تصمیم گرفتم که تبلیغات بسیار خاصی را بر اساس دسته بندی سایت مورد توجه قرار دهم ، بنابراین می خواستم بدون نیاز به رمزگذاری سخت هر نوار کناری سایت ، ستون های فرعی را ایجاد کنم. به این ترتیب ، اگر یک دسته اضافه کنم - نوار کناری به طور خودکار در قسمت ابزارک من ظاهر می شود و می توانم تبلیغات را اضافه کنم.

برای انجام این کار ، من به کد خاصی در functions.php پرونده تم کودک من. خوشبختانه ، متوجه شدم که کسی از قبل تقریباً هر آنچه را که لازم داشتم نوشته است: نوارهای جانبی Widgetized برای هر دسته در وردپرس ایجاد کنید. من فقط می خواستم چند کنترل اضافی در مورد دسته بندی هایی که ممکن است مایل به نمایش ستون های فرعی باشم ، داشته باشم.

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 ، می توانم طرح را با قالب بندی کلی نوار کناری سایت وردپرس خود اصلاح و مطابقت دهم.

علاوه بر این ، در من 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);
    }
}

ستون های فرعی وردپرس برای هر دسته

نتیجه دقیقاً همان چیزی است که من می خواستم:

نوارهای کناری ویجت وردپرس برای هر دسته

اکنون ، صرف نظر از اینکه دسته ها را اضافه یا ویرایش یا حذف می کنم ... نوار کناری من همیشه به روز خواهد بود!

شما چه فکر میکنید؟

این سایت از Akismet برای کاهش هرزنامه استفاده می کند. بدانید که چگونه نظر شما پردازش می شود.