WordPress: looge iga kategooria jaoks automaatselt külgribad

Funktsioon külgribade registreerimiseks iga WordPressi kategooria jaoks

Olen seda saiti lihtsustanud, et parandada kiiruseaega ja proovida saidilt paremini raha teenida, oma lugejaid ärritamata. Saidi monetiseerimiseks on mitu võimalust ... siin on need kõige vähem tulusamad:

  • Otsene sponsorlus partnerettevõtetest. Töötame kollektiivsete strateegiate kallal, mis hõlmavad kõike alates veebiseminaridest kuni sotsiaalmeedia jagamiseni, et reklaamida nende üritusi, tooteid ja / või teenuseid.
  • Affiliate marketing sidusplatvormide hulgast. Ma uurin ja tuvastan ettevõtteid, tagan nende mainekuse ja jagan konkreetseid artikleid, mida ma kirjutan, või nende pakutavaid reklaame.
  • Ressursiturundus partnerilt, kes vabastab turundusega seotud üritused, juhtumiuuringud ja valged raamatud.
  • Ribareklaam Google'ilt, kus asjakohased reklaamid hajutatakse automaatselt minu malli ja sisu kaudu.

WordPressi külgribad

Kuna sidusettevõtte turundus andis korralikku tulu, otsustasin, et tahan tuua saidi kategooria põhjal esile väga spetsiifilisi reklaamijaid, nii et tahtsin luua külgribad dünaamiliselt ilma, et peaksin saidi igat külgriba kodeerima. Sel viisil, kui lisan kategooria - küljeriba ilmub automaatselt minu vidina piirkonda ja saan reklaami lisada.

Selleks vajasin functions.php minu lapse teema fail. Õnneks leidsin, et keegi oli juba peaaegu kõik vajaliku kirjutanud: Looge WordPressi iga kategooria jaoks vidinate külgribad. Tahtsin lihtsalt mõnda lisakontrolli, millistes kategooriates võiksin külgribasid kuvada.

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

Kategooriate toomiseks mõeldud argumentide massiivi abil saan lisada ja välistada kõik kategooriad, mida soovin sihtida. Foreachi avalduses saan ma paigutust muuta ja sobitada oma WordPressi saidi üldise küljeriba vormindusega.

Lisaks minu functions.php, Tahan lisada funktsiooni, et näha, kas külgriba on olemas ja kas sellele on vidin lisatud:

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

Siis minu teema sees külgriba mallifail, lisan koodi ala dünaamiliseks kuvamiseks, kui külgriba on registreeritud ja selles on vidin.

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

WordPressi külgribad iga kategooria jaoks

Tulemus on täpselt see, mida ma tahtsin:

WordPressi vidina külgribad iga kategooria jaoks

Nüüd olenemata kategooriate lisamisest, muutmisest või kustutamisest ... on minu küljeriba alad alati ajakohased!

Mis sa arvad?

Sellel saidil kasutatakse rämpsposti vähendamiseks Akismetit. Vaadake, kuidas teie andmeid töödeldakse.