WordPress: Automatski izradite bočne trake za svaku kategoriju

Funkcija registracije bočnih traka za svaku WordPress kategoriju

Pojednostavljivao sam ovu web stranicu kako bih poboljšao brzinu i pokušao bolje unovčiti web stranicu, a da ne iritiram čitatelje. Postoji više načina na koje sam unovčio web lokaciju ... evo ih od najviše do najmanje unosnih:

  • Direktno sponzorstvo od partnerskih kompanija. Radimo na kolektivnim strategijama koje uključuju sve, od webinara do dijeljenja na društvenim mrežama, za promociju njihovih događaja, proizvoda i / ili usluga.
  • affiliate marketing iz niza pridruženih platformi. Pretražujem i identificiram kompanije, osiguravam da budu ugledne i dijelim određene članke koje napišem ili oglase koje pružaju.
  • Marketing resursa od partnera koji pušta marketinški događaji, studije slučaja i bijele knjige.
  • Baner oglašavanje od Googlea, gdje se relevantni oglasi automatski šire kroz moj predložak i sadržaj.

WordPress bočne trake

Zahvaljujući udruženom marketingu koji pruža neke pristojne prihode, zaključio sam da želim istaknuti vrlo određene oglašivače na osnovu kategorije web stranice, pa sam želio dinamično kreirati bočne trake bez potrebe za kodiranjem svake bočne trake na web lokaciji. Na ovaj način, ako dodam kategoriju - bočna se traka automatski pojavljuje u mom području Widgeta i mogu dodati oglas.

Da bih to učinio, trebao mi je određeni kod u functions.php datoteka moje dijete teme. Srećom, otkrio sam da je neko već napisao gotovo sve što mi treba: Stvorite widgetizirane bočne trake za svaku kategoriju u WordPressu. Samo sam želio neke dodatne kontrole u kojim kategorijama bih možda želio prikazati bočne trake.

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

Pomoću niza argumenata za dohvaćanje kategorija mogu uključiti i isključiti sve kategorije koje želim ciljati. Unutar foreach izjave mogu izmijeniti i prilagoditi izgled rasporedu bočne trake moje cjelokupne WordPress web stranice.

Uz to, u mojoj functions.php, Želim dodati funkciju da vidim postoji li bočna traka i ima li dodani dodatak:

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

Zatim, u okviru moje teme sidebar datoteku predloška, ​​dodam kôd za dinamički prikaz područja ako je bočna traka registrirana i u sebi ima dodatak.

$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 bočne trake za svaku kategoriju

Rezultat je upravo ono što sam želio:

WordPress Widget bočne trake za svaku kategoriju

Sada, bez obzira na to dodajem li, uređujem ili brišem kategorije ... moja područja bočne trake uvijek će biti ažurirana!

Šta ti misliš?

Ova stranica koristi Akismet kako bi smanjila neželjenu poštu. Saznajte kako se podaci vašeg komentara obrađuju.