WordPress: Automatski izradite bočne trake za svaku kategoriju

Funkcija registracije bočnih traka za svaku WordPress kategoriju

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

  • Izravno sponzorstvo od partnerskih tvrtki. Radimo na kolektivnim strategijama koje uključuju sve, od webinara do dionica 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 tvrtke, osiguravam da su 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.
  • Reklamno oglašavanje od Googlea gdje se relevantni oglasi automatski raspršuju 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 temelju kategorije web stranice, pa sam želio dinamično stvoriti bočne trake bez potrebe za kodiranjem svake bočne trake na web mjestu. Na ovaj način, ako dodam kategoriju - bočna se traka automatski pojavljuje u mojem području Widgeta i mogu dodati oglas.

Da bih to učinio, trebao mi je određeni kôd u functions.php datoteka moje dijete teme. Srećom, otkrio sam da je netko već napisao gotovo sve što sam trebao: Stvorite widgetizirane bočne trake za svaku kategoriju u WordPressu. Samo sam želio neke dodatne kontrole u kojim kategorijama bih možda želio prikazivati ​​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' );

Nizom argumenata za dohvaćanje kategorija mogu uključiti i izuzeti bilo koje kategorije koje želim ciljati. Unutar foreach izjave mogu izmijeniti i prilagoditi izgled svom cjelokupnom formatiranju bočne trake web stranice WordPress.

Uz to, u mojem 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, ​​dodajem 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

Neovisno o tome dodajem li, uređujem ili brišem kategorije ... moja će područja uvijek biti ažurirana!

Što vi mislite?

Ova web stranica koristi Akismet za smanjenje neželjene pošte. Saznajte kako se podaci vašeg komentara obrađuju.