WordPress: Automatikusan létrehozhat oldalsávokat minden kategóriához

Funkció az oldalsávok regisztrálásához az egyes WordPress-kategóriákhoz

Leegyszerűsítettem ezt a weboldalt, hogy javítsam a sebességet és megkíséreltem jobban bevételszerezni a webhelyet anélkül, hogy irritálnám olvasóimat. Többféle módon tudtam bevételszerezni a webhelyet ... itt a legkevésbé jövedelmezőek:

  • Közvetlen szponzorálás partnercégektől. Olyan kollektív stratégiákon dolgozunk, amelyek a webes szemináriumoktól kezdve a közösségi média megosztásaig mindent tartalmaznak az eseményeik, termékeik és / vagy szolgáltatásaik népszerűsítése érdekében.
  • Affiliate marketing társult platformok tömbjéből. Átkutatom és azonosítom a vállalatokat, megbizonyosodom arról, hogy jó hírűek-e, és megosztom az általam írt cikkeket vagy hirdetéseket.
  • Erőforrás-marketing elengedő partnertől marketinggel kapcsolatos események, esettanulmányok és összefoglalók.
  • Banner reklám a Google-tól, ahol a releváns hirdetések automatikusan eloszlanak a sablonomon és a tartalmamon keresztül.

WordPress oldalsávok

Mivel az affiliate marketing némi tisztességes bevételt eredményezett, úgy döntöttem, hogy a webhely kategóriája alapján szeretnék rávilágítani a nagyon specifikus hirdetőkre, ezért dinamikusan szeretném létrehozni az oldalsávokat anélkül, hogy az oldal minden egyes oldalsávját keményen kódolnom kellene. Így, ha kategóriát adok hozzá - az oldalsáv automatikusan megjelenik a Widget területén, és hozzáadhatok egy hirdetést.

Ehhez szükségem volt egy speciális kódra a functions.php fájl a gyermek témámról. Szerencsére azt tapasztaltam, hogy valaki már szinte mindent megírt, amire szükségem volt: Hozzon létre widgetezett oldalsávokat a WordPress minden kategóriájához. Csak néhány további vezérlést akartam, hogy mely kategóriákban jeleníthessem meg az oldalsávokat.

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

A kategóriák lekérdezéséhez szükséges argumentumok tömbjével be tudom vonni és kizárni azokat a kategóriákat, amelyeket meg akarok célozni. Az foreach utasításon belül módosíthatom az elrendezést, és hozzáilleszthetem a WordPress webhely általános oldalsáv formázásához.

Továbbá az én functions.php, Hozzá akarok adni egy függvényt, hogy lássam, van-e oldalsáv és van-e hozzá 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;
}

Aztán a témámon belül oldalsáv sablonfájl, kódot adok hozzá, hogy dinamikusan jelenítsem meg a területet, ha az oldalsáv regisztrálva van, és van benne 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 oldalsávok minden kategóriához

Az eredmény pontosan az, amit szerettem volna:

WordPress Widget oldalsávok minden kategóriához

Most, függetlenül attól, hogy kategóriákat adok-e hozzá, szerkesztek vagy törölök ... az oldalsáv területeim mindig naprakészek lesznek!

Mit gondolsz?

Ez az oldal Akismet-et használ a levélszemét csökkentése érdekében. Ismerje meg, hogyan dolgozik a megjegyzésed.