WordPress: samodejno ustvarite stranske vrstice za vsako kategorijo

Funkcija registracije stranskih vrstic za vsako kategorijo WordPress

To spletno mesto sem poenostavil, da sem izboljšal hitrost in poskušal bolje ovrednotiti spletno mesto, ne da bi dražil bralce. Obstaja več načinov, kako monetiziram spletno mesto ... tukaj so od najbolj do najmanj donosne:

  • Neposredno sponzorstvo partnerskih podjetij. Delamo na kolektivnih strategijah, ki vključujejo vse od spletnih seminarjev do delnic v družabnih medijih za promocijo njihovih dogodkov, izdelkov in / ali storitev.
  • Affiliate marketing iz vrste pridruženih platform. Brskam in prepoznavam podjetja, zagotavljam, da so ugledna, in delim posebne članke, ki jih pišem, ali oglase, ki jih ponujajo.
  • Trženje virov od partnerja, ki izpusti dogodki, povezani s trženjem, študije primerov in tehnične knjige.
  • Oglasno oglaševanje od Googla, kjer se ustrezni oglasi samodejno razpršijo po moji predlogi in vsebini.

Stranske vrstice WordPress

S podružničnim trženjem, ki zagotavlja nekaj spodobnih prihodkov, sem se odločil, da želim opozoriti na zelo specifične oglaševalce glede na kategorijo spletnega mesta, zato sem želel dinamično ustvarjati stranske vrstice, ne da bi morali trdno kodirati vsako stransko vrstico na spletnem mestu. Na ta način, če dodam kategorijo, se stranska vrstica samodejno prikaže v mojem območju Widget in lahko dodam oglas.

Za to sem potreboval določeno kodo v functions.php datoteka moje otroške teme. Na srečo sem ugotovil, da je nekdo že napisal skoraj vse, kar sem potreboval: Ustvarite razširjene stranske vrstice za vsako kategorijo v WordPressu. Želel sem le nekaj dodatnih kontrol, v katerih kategorijah bom morda želel prikazati stranske vrstice.

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

Z vrsto argumentov za pridobivanje kategorij lahko vključim in izključim vse kategorije, na katere želim ciljati. Znotraj izjave foreach lahko postavitev spremenim in prilagodim oblikovanju stranske vrstice mojega celotnega spletnega mesta WordPress.

Poleg tega v mojem functions.php, Želim dodati funkcijo, da preverim, ali obstaja stranska vrstica in je v njej dodan pripomoček:

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

Potem v okviru moje teme sidebar Predloge, dodam kodo za dinamični prikaz območja, če je stranska vrstica registrirana in ima v sebi pripomoček.

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

Stranske vrstice WordPress za vsako kategorijo

Rezultat je točno tak, kot sem si želel:

Stranske vrstice pripomočkov WordPress za vsako kategorijo

Zdaj, ne glede na to, ali dodam, uredim ali izbrišem kategorije ... bodo moja področja bočne vrstice vedno posodobljena!

Kaj menite?

Ta stran uporablja Akismet za zmanjšanje nezaželene pošte. Preberite, kako se vaš komentar obravnava.