WordPress: Har bir toifaga avtomatik ravishda yon panellarni yarating

Har bir WordPress toifasi uchun yon panellarni ro'yxatdan o'tkazish funktsiyasi

Tezlik vaqtini yaxshilash va o'quvchilarimni bezovta qilmasdan saytni yaxshiroq pul ishlashga harakat qilish uchun ushbu saytni soddalashtiryapman. Saytni monetizatsiya qilishning bir qancha usullari mavjud ... bu erda ular eng ko'pdan eng daromadligacha:

  • To'g'ridan-to'g'ri homiylik sherik kompaniyalardan. Biz o'zlarining tadbirlarini, mahsulotlarini va / yoki xizmatlarini targ'ib qilish uchun veb-seminarlardan tortib, ijtimoiy tarmoqlardagi aktsiyalargacha bo'lgan barcha narsani o'z ichiga olgan jamoaviy strategiyalar ustida ishlaymiz.
  • Affiliate marketing bir qator sheriklik platformalaridan. Men kompaniyalarni qidirib topaman, ularning obro'li ekanligiga ishonch hosil qilaman va men yozgan maxsus maqolalar yoki ular e'lonlari bilan bo'lishaman.
  • Resurs marketingi chiqaradigan sherikdan marketing bilan bog'liq voqealar, amaliy tadqiqotlar va oq qog'ozlar.
  • Bannerli reklama tegishli reklama avtomatik ravishda mening shablonim va tarkibim orqali tarqatiladigan Google-dan.

WordPress yon panellari

Yaxshi daromad keltiradigan sheriklik marketingi bilan men saytning toifasiga qarab juda aniq reklama beruvchilarni e'tiborini jalb qilmoqchiman deb qaror qildim, shuning uchun saytdagi har bir yon panelni qattiq kodlash shart bo'lmagan holda yon panellarni dinamik ravishda yaratmoqchi edim. Shu tarzda, agar toifani qo'shsam - yon panel avtomatik ravishda mening Vidjet maydonimda paydo bo'ladi va men reklama qo'sha olaman.

Buning uchun menga ba'zi bir maxsus kod kerak edi Functions.php mening bolam mavzusidagi fayl. Yaxshiyamki, kimdir menga kerak bo'lgan hamma narsani allaqachon yozib qo'yganligini aniqladim: WordPress-da har bir turkum uchun vidjetlashtirilgan yon panellarni yarating. Men faqat yon panellarni qaysi toifalarda ko'rsatishni xohlashim mumkinligi haqida qo'shimcha nazorat qilishni xohladim.

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' );

Kategoriyalarni olish uchun bir qator argumentlar bilan men maqsad qilmoqchi bo'lgan har qanday toifalarni kiritishim va chiqarib tashlashim mumkin. Oldingi bayonotda men o'zimning WordPress saytimning yon panelidagi formatlashni o'zgartirishim va moslashtirishim mumkin.

Bundan tashqari, mening Functions.php, Yon panel mavjudligini va unga vidjet qo'shilganligini ko'rish uchun funktsiyani qo'shmoqchiman:

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;
}

Keyin, mening mavzum doirasida yozish imkoniyatiga andoza fayli, agar yon panel ro'yxatdan o'tgan bo'lsa va unda vidjet bo'lsa, maydonni dinamik ravishda ko'rsatish uchun kod qo'shaman.

$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);
    }
}

Har bir toifaga mo'ljallangan WordPress yon panellari

Natijada men xohlagan narsa:

Har bir toifaga mo'ljallangan WordPress vidjetining yon panellari

Endi toifalarni qo'shishim, tahrirlashim yoki o'chirishimdan qat'i nazar… mening yon panellarim doimo yangilanadi!

Siz nima deb o'ylaysiz?

Ushbu sayt spamni kamaytirish uchun Akismet-dan foydalanadi. Fikringiz ma'lumotlarining qanday ishlashini bilib oling.