WordPress: Automatycznie twórz paski boczne dla każdej kategorii

Funkcja rejestracji pasków bocznych dla każdej kategorii WordPress

Upraszczałem tę witrynę, aby przyspieszyć czas i spróbować lepiej zarabiać na witrynie bez irytowania moich czytelników. Jest wiele sposobów zarabiania na witrynie… tutaj są one od najbardziej do najmniej lukratywnych:

  • Sponsorowanie bezpośrednie od firm partnerskich. Pracujemy nad zbiorowymi strategiami, które obejmują wszystko, od webinarów po udostępnianie w mediach społecznościowych, aby promować ich wydarzenia, produkty i / lub usługi.
  • Affiliate marketing z szeregu platform stowarzyszonych. Przeszukuję i identyfikuję firmy, upewniam się, że cieszą się dobrą reputacją i udostępniam konkretne artykuły, które piszę lub reklamy, które dostarczają.
  • Marketing zasobów od partnera, który wypuszcza wydarzenia marketingowe, studia przypadków i białe księgi.
  • Baner reklamowy z Google, gdzie odpowiednie reklamy są automatycznie rozpraszane w moim szablonie i treści.

Paski boczne WordPress

Ponieważ marketing afiliacyjny zapewniał przyzwoite dochody, zdecydowałem, że chcę wyróżnić bardzo konkretnych reklamodawców na podstawie kategorii witryny, więc chciałem dynamicznie tworzyć paski boczne bez konieczności kodowania na stałe każdego paska bocznego w witrynie. W ten sposób, jeśli dodam kategorię - pasek boczny automatycznie pojawi się w moim obszarze Widżetów i mogę dodać ogłoszenie.

Aby to zrobić, potrzebowałem określonego kodu w functions.php plik mojego motywu potomnego. Na szczęście odkryłem, że ktoś napisał już prawie wszystko, czego potrzebowałem: Utwórz widżetowe paski boczne dla każdej kategorii w WordPress. Chciałem tylko uzyskać dodatkowe kontrolki nad kategoriami, w których chciałbym wyświetlać paski boczne.

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

Dzięki tablicy argumentów do pobierania kategorii mogę uwzględniać i wykluczać dowolne kategorie, na które chcę kierować reklamy. W oświadczeniu foreach mogę modyfikować i dopasowywać układ do ogólnego formatowania paska bocznego mojej witryny WordPress.

Dodatkowo w moim functions.php, Chcę dodać funkcję sprawdzającą, czy istnieje pasek boczny i czy jest do niego dodany widżet:

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

Następnie w ramach mojego tematu sidebar template, dodaję kod, aby dynamicznie wyświetlać obszar, jeśli pasek boczny jest zarejestrowany i zawiera widżet.

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

Paski boczne WordPress dla każdej kategorii

Wynik jest dokładnie taki, jakiego chciałem:

Widgetowe paski boczne WordPress dla każdej kategorii

Teraz, niezależnie od tego, czy dodam, edytuję, czy usuwam kategorie… moje obszary paska bocznego będą zawsze aktualne!

Co o tym myślisz?

Ta strona używa Akismet do redukcji spamu. Dowiedz się, jak przetwarzane są dane komentarza.