WordPress: Luo sivupalkit automaattisesti kullekin luokalle

Toiminto sivupalkkien rekisteröimiseksi jokaiselle WordPress-luokalle

Olen yksinkertaistanut tätä sivustoa nopeusajan parantamiseksi ja yrittäneen kaupallistaa sivuston paremmin ärsyttämättä lukijani. On useita tapoja, joilla olen kaupallistanut sivuston ... tässä ne ovat kaikkein vähiten tuottoisia:

  • Suora sponsorointi kumppaniyrityksiltä. Työskentelemme sellaisten kollektiivisten strategioiden parissa, joihin sisältyy kaikkea webinaareista sosiaalisen median osakkeisiin niiden tapahtumien, tuotteiden ja / tai palveluiden mainostamiseksi.
  • Kumppanuusmarkkinointi joukosta tytäryhtiöalustoja. Tutkin ja tunnistan yritykset, varmistan, että ne ovat hyvämaineisia, ja jaan tiettyjä kirjoittamiani artikkeleita tai niiden tarjoamia mainoksia.
  • Resurssimarkkinointi kumppanilta, joka vapauttaa markkinointiin liittyvät tapahtumat, tapaustutkimukset ja valkoiset kirjat.
  • Bannerimainonta Googlelta, missä asiaankuuluvat mainokset levitetään automaattisesti mallini ja sisältöni kautta.

WordPress-sivupalkit

Kun tytäryhtiömarkkinointi tuotti kohtuullisia tuloja, päätin, että halusin tuoda esiin hyvin erityisiä mainostajia sivuston luokan perusteella, joten halusin luoda dynaamisesti sivupalkit ilman, että minun tarvitsisi koodata kutakin sivuston sivupalkkia. Tällä tavalla, jos lisäät luokan - sivupalkki näkyy automaattisesti Widget-alueella ja voin lisätä mainoksen.

Tätä varten tarvitsin tiettyä koodia functions.php tiedosto lapseni teemasta. Onneksi huomasin, että joku oli jo kirjoittanut melkein kaiken tarvitsemani: Luo widgetisoidut sivupalkit jokaiselle kategorialle WordPressissä. Halusin vain joitain lisäohjaimia, joissa luokissa haluan näyttää sivupalkit.

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

Ryhmien hakemisessa luokkien hakemisella voin sisällyttää ja sulkea pois kaikki luokat, joihin haluan kohdistaa. Foreach-lauseessa voin muokata asettelua ja sovittaa sen WordPress-sivustoni sivupalkin muotoiluun.

Lisäksi minun functions.php, Haluan lisätä toiminnon nähdäksesi onko sivupalkki olemassa ja onko siihen lisätty widget:

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

Sitten teemani sisällä sivupalkki mallitiedosto, lisätään koodia alueen dynaamiseen näyttämiseen, jos sivupalkki on rekisteröity ja siinä on widget.

$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-sivupalkit kullekin luokalle

Tulos on juuri se, mitä halusin:

WordPress-widgetin sivupalkit kullekin luokalle

Nyt riippumatta siitä, lisätäänkö, muokataanko tai poistan luokkia ... sivupalkkini ovat aina ajan tasalla!

Mitä mieltä olet?

Tämä sivusto käyttää Akismetiä roskapostin vähentämiseksi. Lue, miten kommenttitietosi käsitellään.