WordPress: Kreye Sidebars otomatikman pou chak kategori

Fonksyon Enskri Sidebars pou chak Kategori WordPress

Mwen te senplifye sit sa a pou amelyore fwa vitès epi eseye monetize sit la pi byen san enèvan lektè mwen yo. Gen plizyè fason ke mwen te monetize sit la ... isit la yo soti nan pi piti a likratif:

  • Sponsorizasyon dirèk soti nan konpayi patnè. Nou travay sou estrateji kolektif ki enkòpore tout bagay soti nan vebinèr aksyon medya sosyal ankouraje evènman yo, pwodwi, ak / oswa sèvis yo.
  • maketing afilye soti nan yon etalaj de tribin afilye. Mwen fouye ak idantifye konpayi yo, asire yo ap bon repitasyon, ak pataje atik espesifik mwen ekri oswa anons ke yo bay.
  • Maketing Resous soti nan yon patnè ki degaje evènman ki gen rapò ak maketing, ka etid, ak papye blan.
  • Banner piblisite soti nan Google kote anons ki enpòtan yo otomatikman gaye nan modèl mwen an ak kontni.

WordPress Sidebars

Avèk maketing afilye ki bay kèk revni desan, mwen deside ke mwen te vle dokiman Pwen Enpòtan trè espesifik piblisite ki baze sou kategori a nan sit la, Se konsa, mwen te vle dynamique kreye ankadre yo san yo pa gen difisil-kòd chak ankadre sou sit la. Fason sa a, si mwen ajoute yon kategori - ankadre a otomatikman parèt nan zòn Widget mwen an epi mwen ka ajoute yon reklam.

Pou fè sa, mwen te bezwen kèk kòd espesifik nan la functions.php dosye tèm pitit mwen an. Erezman, mwen te jwenn ke yon moun te deja ekri prèske tout bagay ke mwen te bezwen: Kreye Widgetized Sidebars pou chak kategori nan WordPress. Mwen jis te vle kèk kontwòl adisyonèl sou ki kategori mwen ka vle montre ankadre yo nan.

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

Avèk etalaj la nan agiman pou Rekipere kategori, mwen ka gen ladan yo ak eskli nenpòt ki kategori ke mwen ta vle sib. Nan deklarasyon an foreach, mwen ka modifye ak matche ak layout nan fòma ankadre jeneral sit WordPress mwen an.

Anplis de sa, nan mwen functions.php, Mwen vle ajoute yon fonksyon yo wè si yon ankadre egziste e li gen yon widje ajoute nan li:

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

Lè sa a, nan tèm mwen an ankadre dosye modèl, mwen ajoute kòd dinamik montre zòn nan si ankadre a anrejistre epi li gen yon widje nan li.

$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 Sidebars pou chak kategori

Rezilta a se egzakteman sa mwen te vle:

WordPress Widget Sidebars pou chak kategori

Koulye a, kèlkeswa si mwen ajoute, modifye, oswa efase kategori ... zòn ankadre mwen an ap toujou ajou!

Ki sa ou panse?

Sit sa a sèvi ak Akismet diminye Spam. Aprann kijan kòmantè ou a trete.