WordPress: ავტომატურად შექმენით გვერდითი ზოლები თითოეული კატეგორიისთვის

თითოეული WordPress კატეგორიის გვერდითი ზოლების რეგისტრაციის ფუნქცია

მე ამ საიტს ვამარტივებდი სიჩქარის დროის გასაუმჯობესებლად და ვეცდებოდი საიტის უკეთ მონეტიზაციას მკითხველების გაღიზიანების გარეშე. არსებობს საიტის მონეტიზაციის მრავალი მეთოდი ... აქ ისინი ყველაზე ნაკლებად მომგებიანია:

  • პირდაპირი სპონსორობა პარტნიორი კომპანიებისგან. ჩვენ ვმუშაობთ კოლექტიურ სტრატეგიებზე, რომლებიც მოიცავს ყველაფერს, ვებინარებიდან დაწყებული სოციალური მედიის აქციებით, მათი ღონისძიებების, პროდუქტების ან / და სერვისების პოპულარიზაციით.
  • შვილობილი მარკეტინგი შვილობილი პლატფორმების მასივიდან. ვეძებ კომპანიებს, ვიცავ მათ რეპუტაციას და ვზიარებ ჩემს მიერ დაწერილ სტატიებს ან მათ მიერ მოწოდებულ რეკლამებს.
  • რესურსების მარკეტინგი პარტნიორისგან, რომელიც ათავისუფლებს მარკეტინგთან დაკავშირებული ღონისძიებები, შემთხვევების შესწავლა და თეთრი ნაშრომები.
  • ბანერის რეკლამა Google- იდან, სადაც შესაბამისი რეკლამები ავტომატურად იფანტება ჩემი შაბლონისა და შინაარსის საშუალებით.

WordPress გვერდითი ზოლები

შვილობილი მარკეტინგი, რომელიც ღირსეულ შემოსავალს იძლევა, გადავწყვიტე, რომ მსურდა ყურადღების გამახვილება სპეციფიკური რეკლამის განმთავსებლებისთვის, საიტის კატეგორიის მიხედვით, ამიტომ მინდოდა დინამიურად შემექმნა გვერდითი ზოლები, საიტის თითოეული გვერდითი ზოლის მყარი კოდის გარეშე. ამ გზით, თუ კატეგორიას დავამატებ - გვერდითი ზოლი ავტომატურად გამოჩნდება ჩემი ვიჯეტის არეში და შემიძლია დავამატო რეკლამა.

ამისათვის მე მჭირდებოდა კონკრეტული კოდი functions.php ჩემი ბავშვის თემის ფაილი. საბედნიეროდ, მივხვდი, რომ ვიღაცამ უკვე დაწერა თითქმის ყველაფერი, რაც მჭირდებოდა: შექმნათ Widgetized გვერდითი ზოლები თითოეული კატეგორიისთვის WordPress– ში. მე უბრალოდ მინდოდა რამდენიმე დამატებითი კონტროლი, თუ რომელ კატეგორიებში მოვინდომებ გვერდითი ზოლების ჩვენებას.

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

კატეგორიების მისაღებად არგუმენტაციის მასივის საშუალებით შემიძლია ჩავრთო და გამოვრიცხო ის კატეგორიები, რომელთა მიზანიც მსურს. Foreach განცხადების ფარგლებში, შემიძლია შეცვალონ და შეუთავსონ განლაგება ჩემს WordPress საიტის გვერდის ზოლის მთლიან ფორმატში.

გარდა ამისა, ჩემს functions.php, მე მინდა დავამატო ფუნქცია, რომ ნახოთ თუ არა გვერდითი ზოლი და მას დაემატა ვიჯეტი:

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

შემდეგ, ჩემი თემის ფარგლებში გვერდითი ზოლი შაბლონის ფაილი, მე ვუმატებ კოდს, რომ დინამიურად დავანახო ის ტერიტორია, თუ გვერდითი ზოლი რეგისტრირებულია და მასში აქვს ვიჯეტი.

$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 გვერდითი ზოლები თითოეული კატეგორიისთვის

შედეგი არის ზუსტად ის, რაც მინდოდა:

WordPress ვიჯეტის გვერდითი ზოლები თითოეული კატეგორიისთვის

ახლა, მიუხედავად იმისა, დავამატებ, ვარედაქტირებ ან ვშლი კატეგორიებს ... ჩემი გვერდითი ზოლის ადგილები ყოველთვის განახლებული იქნება!

რას ფიქრობთ?

ეს საიტი იყენებს Akismet- ს, რათა შეამციროს სპამი. შეისწავლეთ თქვენი კომენტარის მონაცემები დამუშავებული.