WordPress: Автоматично създавайте странични ленти за всяка категория

Функция за регистриране на страничните ленти за всяка категория на WordPress
Време за четене: 2 протокол

Опростявах този сайт, за да подобря скоростта и да се опитвам да осигурявам по-добра възможност за осигуряване на приходи от него, без да дразня читателите си. Има няколко начина, по които съм си осигурил приходи от сайта ... тук те са от най-малко до най-доходоносните:

  • Директно спонсорство от фирми партньори. Ние работим по колективни стратегии, които включват всичко - от уеб семинари до споделяния в социалните медии, за да популяризират своите събития, продукти и / или услуги.
  • Партньорски маркетинг от множество партньорски платформи. Преглеждам и идентифицирам компаниите, гарантирам, че те са реномирани и споделям конкретни статии, които пиша, или реклами, които те предоставят.
  • Ресурсен маркетинг от партньор, който освобождава свързани с маркетинга събития, казуси и бели книги.
  • Банерна реклама от 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 Widget за всяка категория

Сега, независимо дали добавям, редактирам или изтривам категории ... моите области на страничната лента винаги ще бъдат актуални!

Какво мислите?

Този сайт използва Akismet за намаляване на спама. Научете как се обработват данните за коментарите ви.