WordPress: Her Kategori İçin Otomatik Olarak Kenar Çubukları Oluşturun

Her WordPress Kategorisi için Kenar Çubukları Kaydetme İşlevi

Hız sürelerini iyileştirmek ve okuyucularımı rahatsız etmeden siteden daha iyi para kazanmaya çalışmak için bu siteyi basitleştiriyordum. Siteden para kazanmanın birçok yolu var ... işte bunlar en çoktan en az kârlıya doğru:

  • Doğrudan sponsorluklar ortak şirketlerden. Etkinliklerini, ürünlerini ve / veya hizmetlerini tanıtmak için web seminerlerinden sosyal medya paylaşımlarına kadar her şeyi içeren kolektif stratejiler üzerinde çalışıyoruz.
  • Bağlı pazarlama bir dizi bağlı kuruluş platformundan. Şirketleri araştırıyor ve tanımlıyorum, saygın olduklarından emin oluyorum ve yazdığım belirli makaleleri veya sundukları reklamları paylaşıyorum.
  • Kaynak pazarlaması serbest bırakan bir partnerden pazarlama ile ilgili etkinlikler, vaka çalışmaları ve teknik incelemeler.
  • Afiş reklam Google'dan, ilgili reklamların şablonum ve içeriğim aracılığıyla otomatik olarak dağıtıldığı yer.

WordPress Kenar Çubukları

Bağlı kuruluş pazarlamasının makul bir gelir sağlamasıyla, sitenin kategorisine göre çok özel reklamcıları öne çıkarmak istediğime karar verdim, bu nedenle sitedeki her kenar çubuğunu sabit kodlamak zorunda kalmadan kenar çubuklarını dinamik olarak oluşturmak istedim. Bu şekilde, bir kategori eklersem - kenar çubuğu otomatik olarak Widget alanımda belirir ve bir reklam ekleyebilirim.

Bunu yapmak için, bazı özel koda ihtiyacım vardı functions.php alt temamın dosyası. Neyse ki, ihtiyacım olan neredeyse her şeyi birinin zaten yazdığını buldum: WordPress'teki Her Kategori için Widget'lı Kenar Çubukları Oluşturun. Kenar çubuklarını hangi kategorilerde görüntülemek isteyebileceğim konusunda bazı ek kontroller istedim.

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

Kategorileri almak için argüman dizisiyle, hedeflemek istediğim tüm kategorileri ekleyebilir ve hariç tutabilirim. Foreach ifadesi içinde, düzeni değiştirebilir ve genel WordPress sitemin kenar çubuğu biçimlendirmesiyle eşleştirebilirim.

Ek olarak, benim functions.php, Bir kenar çubuğunun olup olmadığını ve ona bir widget eklenip eklenmediğini görmek için bir işlev eklemek istiyorum:

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

Sonra, temamın içinde kenar çubuğu şablon dosyasında, kenar çubuğu kayıtlıysa ve içinde bir pencere öğesi varsa alanı dinamik olarak görüntülemek için kod ekliyorum.

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

Her Kategori için WordPress Kenar Çubukları

Sonuç tam olarak istediğim şeydi:

Her Kategori için WordPress Widget Kenar Çubukları

Şimdi, kategori eklesem, düzenlesem ya da silersem de ... kenar çubuğu alanlarım her zaman güncel olacak!

Ne düşünüyorsunuz?

Bu site spam'i azaltmak için Akismet'i kullanıyor. Yorum verilerinizin nasıl işlendiğini öğrenin.