WordPress: Krijoni shirita anash automatikisht për secilën kategori

Funksioni për të regjistruar shiritat anësorë për secilën kategori WordPress

Unë kam qenë duke e thjeshtuar këtë faqe për të përmirësuar kohën e shpejtësisë dhe për të provuar të fitoj para më mirë nga faqja pa irrituar lexuesit e mi. Ka mënyra të shumta me të cilat unë e kam fituar këtë faqe… këtu ato janë nga shumica në më pak fitimprurëse:

  • Sponsorizime të drejtpërdrejta nga kompanitë partnere. Ne punojmë për strategji kolektive që përfshijnë gjithçka, nga uebinarët tek aksionet e mediave sociale për të promovuar ngjarjet, produktet dhe / ose shërbimet e tyre.
  • Marketingu i Affiliate nga një sërë platformash bashkëpunëtore. Unë kërkoj dhe identifikoj kompanitë, siguroj që ato janë me reputacion të lartë dhe ndaj artikuj të veçantë që shkruaj ose reklama që ato ofrojnë.
  • Marketingu i burimeve nga një partner që lirohet ngjarje të lidhura me marketingun, raste studimore dhe letra të bardha.
  • Reklamimi i banderolave nga Google ku reklamat përkatëse shpërndahen automatikisht përmes modelit dhe përmbajtjes sime.

Shiritat anësorë të WordPress

Me marketingun e partneritetit që siguroi disa të ardhura të mira, vendosa që të doja të vëzhgoja reklamuesit shumë specifikë bazuar në kategorinë e faqes, kështu që doja të krijoja dinamikisht shiritat anësorë pa pasur nevojë të kodifikoja secilën shirit në faqen. Në këtë mënyrë, nëse shtoj një kategori - shiriti anësor shfaqet automatikisht në zonën time të Widget dhe unë mund të shtoj një reklamë.

Për ta bërë këtë, më duhej një kod specifik në functions.php skedari i temës së fëmijës tim. Fatmirësisht, gjeta se dikush tashmë kishte shkruar gati gjithçka që më duhej: Krijoni shirita anësorë të Widgetized për secilën kategori në WordPress. Thjesht doja disa kontrolle shtesë se në cilat kategori mund të dëshiroj të shfaq shiritat anësorë.

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

Me një varg argumentesh për marrjen e kategorive, mund të përfshij dhe përjashtoj çdo kategori që dëshiroj të synoj. Brenda deklaratës së predikimit, unë mund të modifikoj dhe përputh paraqitjen me formatimin e përgjithshëm të shiritit anësor të faqes time WordPress.

Për më tepër, në timen functions.php, Unë dua të shtoj një funksion për të parë nëse ekziston një shirit anësor dhe i është shtuar një 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;
}

Pastaj, brenda temës sime sidebar skedar shablloni, shtoj kod për të shfaqur dinamikisht zonën nëse shiriti anësor është i regjistruar dhe ka një widget në të.

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

Shiritat anësorë të WordPress-it për secilën kategori

Rezultati është pikërisht ajo që doja:

Shiritat anësorë të Widget WordPress për secilën kategori

Tani, pavarësisht nëse shtoj, modifikoj ose fshij kategori areas zonat e shiritit tim anësor do të jenë gjithnjë të azhurnuara!

Çfarë mendoni ju?

Kjo faqe përdor Akismet për të reduktuar spamin. Mësoni se si përpunohet komenti juaj.