WordPress: Kreu Flankobretojn Aŭtomate Por Ĉiu Kategorio

Funkcio por Registri Flankobretojn por Ĉiu WordPress-Kategorio

Mi simpligis ĉi tiun retejon por plibonigi rapidajn tempojn kaj provi pli monetigi la retejon sen inciti miajn legantojn. Estas multaj manieroj, per kiuj mi monetigis la retejon ... jen ili de plej al malpli profita:

  • Rekta sponsorado de kompanioj kompanianoj. Ni laboras pri kolektivaj strategioj, kiuj inkluzivas ĉion, de retejoj al sociaj amaskomunikiloj por reklami siajn eventojn, produktojn kaj / aŭ servojn.
  • Filia merkatumado de aro de filiaj platformoj. Mi traserĉas kaj identigas la kompaniojn, certigas, ke ili estas bonfamaj, kaj dividas specifajn artikolojn, kiujn mi verkas aŭ anoncojn, kiujn ili provizas.
  • Rimeda merkatado de partnero, kiu liberigas merkat-rilataj eventoj, kazesploroj, kaj blankaj libroj.
  • Reklamado de rubandoj de Google, kie koncernaj reklamoj aŭtomate disiĝas tra mia ŝablono kaj enhavo.

WordPress Flankobretoj

Kun filia merkatado provizanta iom da enspezoj, mi decidis, ke mi volas emfazi tre specifajn reklamantojn laŭ la kategorio de la retejo, do mi volis dinamike krei la flankajn stangojn sen devi malfacile kodigi ĉiun flankan stangon de la retejo. Tiel, se mi aldonas kategorion - la flanka kolumno aŭtomate aperas en mia Widget-areo kaj mi povas aldoni reklamon.

Por fari tion, mi bezonis iun specifan kodon en la functions.php dosiero de mia infana temo. Feliĉe, mi trovis, ke iu jam skribis preskaŭ ĉion, kion mi bezonis: Kreu Widgetized Sidebars por Ĉiu Kategorio en WordPress. Mi nur volis iujn aldonajn kontrolojn pri kiuj kategorioj mi eble volas montri la flankajn stangojn.

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

Kun la aro da argumentoj por retrovi kategoriojn, mi povas inkluzivi kaj ekskludi iujn ajn kategoriojn, kiujn mi volas celi. En la foreach-deklaro, mi povas modifi kaj kongrui la aranĝon al la flanka formado de mia ĝenerala WordPress-ejo.

Aldone, en mia functions.php, Mi volas aldoni funkcion por vidi ĉu flanka kolumno ekzistas kaj havas fenestraĵon aldonitan:

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

Poste, ene de mia temo ilobreto ŝablona dosiero, mi aldonas kodon por dinamike montri la areon se la flanka kolumno estas registrita kaj havas fenestraĵon en ĝi.

$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 Flankobretoj por Ĉiu Kategorio

La rezulto estas ĝuste tio, kion mi volis:

WordPress Widget Flankobretoj por Ĉiu Kategorio

Nun, sendepende de tio, ĉu mi aldonas, redaktas aŭ forigas kategoriojn ... miaj flankobretaj regionoj ĉiam estos ĝisdatigitaj!

Kion vi pensas?

Ĉi tiu retejo uzas Akismeton por redukti spamon. Lernu, kiel via komento datiĝas.