WordPress: Ji bo Her Kategorî bixweber Sidebars çêbikin

Fonksiyona ku ji bo Her Kategoriya WordPress-ê Sidebar-ê qeyd bikin

Min vê malperê hêsan kir da ku demên leza çêtir bike û bêyî ku xwendevanên min aciz bike, hewl bide ku malperê çêtir dravî bike. Gelek awayên ku min ji malperê re monetîzekiriye hene ... li vir ew ji pirên herî kêm qezenc in:

  • Sponsoriyên rasterast ji pargîdaniyên hevkar. Em li ser stratejiyên kolektîf ên ku ji webinars bigire heya parvekirinên medyaya civakî her tiştî digirin nav xwe da ku bûyer, hilber û / an karûbarên wan pêşve bixin dixebitin.
  • Kiryariya peywendîdar ji rêzeyek platformên parmendî. Ez pargîdaniyan digerim û nas dikim, piştrast dikim ku ew pêbawer in, û gotarên taybetî yên ku ez dinivîsim an reklamên ku ew pêşkêş dikin parve dikim.
  • Kirrûbirra çavkaniyê ji hevparê ku serbest berdide bûyerên têkildarî kirrûbirrê, lêkolînên dozê, û kaxezên spî.
  • Banner reklam ji Google-ê ku reklamên têkildar bixweber bi navgîniya şablon û naveroka min ve têne belav kirin.

Sidebars WordPress

Bi kirrûbirra parmendî re hin dahatên guncan peyda kirin, min biryar da ku ez dixwazim reklamkarên pir taybetî li ser bingeha kategoriya malperê balê bikişînim, ji ber vê yekê min xwest ku ez dînamîkî teniştan çêbikim bêyî ku li ser malperê her aliyek zor-kod bikim. Bi vî rengî, heke ez kategoriyek zêde bikim - kêleka kêliyê bixweber di warê Widget-a min de xuya dibe û ez dikarim reklamek zêde bikim.

Ji bo vê yekê, min hewceyê hin kodên taybetî di functions.php pelê mijara zarokê min. Ji kerema xwe, min dît ku kesek hema hema her tiştê ku ji min re hewce kirî nivîsandiye: Di WordPress-ê de ji bo her kategoriyê Sidebarên Widgetized-ê çêbikin. Min tenê çend kontrolên din jî xwest ku li ser kîjan kategoriyan ez dixwazim rêzikên kêlekan nîşan bikim.

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

Bi rêzika nîqaşên ji bo vegerandina kategoriyan, ez dikarim kategoriyên ku ez dixwazim bibim hedef û tê de bihêlim. Di nav daxuyaniya foreach de, ez dikarim verastkirinê bi teşeya formatkirina tenişta malpera xwe ya WordPress-ê biguhezînim û li hev bînim.

Wekî din, di ya min de functions.php, Ez dixwazim fonksiyonek lê zêde bikim da ku bibînim ka aliyek heye an jî widgetek pê re hatiye zêdekirin:

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

Dûv re, di nav mijara min de darikê Pelê şablonê, ez kodê lê zêde dikim da ku heke darika kêlekê qeydkirî be û tê de widgetek hebe, herêmê bi dînamîkî nîşan bikim.

$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 Sidebars ji bo Her Kategorî

Encam bi rastî ya ku min dixwest ev e:

WordPress Widget Sidebar ji bo Her Kategorî

Naha, bêyî ku ez kategoriyan lê zêde bikim, sererast bikim, an jî jê bikim areas dê deverên milê min her dem rojane bin!

Hûn çi difikirin?

Ev malpera Akismet bikar tîne ku ji bo kêmkirina spam. Zêdetir agahdariya danûstandinên we çawa pêvajoy kirin.