Content Marketing

WordPress: Как да публикувате емисии за всяка категория във вашия блог

По подразбиране блогът на WordPress има емисия, която включва всички негови публикации, независимо от категорията. Един от начините да подобрите персонализирането и сегментирането за посетителите на вашия сайт е да активирате RSS емисии, специфични за техните категории на интереси. Можете също така да използвате специфична за категорията емисия за публикуване на имейл бюлетин. Можете обаче да създадете персонализирани емисии на категории за вашия блог в WordPress или персонализирани типове публикации, ако желаете.

Емисии на категории в WordPress

Ето код, който можете да добавите към вашия детски теми functions.php файл, който генерира RSS емисии за конкретни категории в WordPress със списъци за включване и изключване за идентификатори на категории:

function custom_category_feeds() {
    $categories = get_categories();

    // Define an array of category IDs to include and exclude
    $included_category_ids = array(3, 4); // Add IDs of categories to include
    $excluded_category_ids = array(1, 2); // Add IDs of categories to exclude

    foreach ($categories as $category) {
        $category_id = $category->term_id;

        // Check if the category should be excluded
        if (in_array($category_id, $excluded_category_ids)) {
            continue; // Skip excluded categories
        }

        // Check if the category should be included
        if (!empty($included_category_ids) && !in_array($category_id, $included_category_ids)) {
            continue; // Skip categories not in the inclusion list
        }

        $category_slug = $category->slug;
        $category_name = $category->name;

        // Start building the RSS feed content
        $rss_feed = '<?xml version="1.0" encoding="UTF-8" ?>' . "\n";
        $rss_feed .= '<rss version="2.0" xmlns:atom="1www.w3.org/2005/Atom">' . "\n";
        $rss_feed .= '<channel>' . "\n";
        $rss_feed .= '<title>' . $category_name . ' RSS Feed</title>' . "\n";
        $rss_feed .= '<link>' . get_bloginfo('url') . '</link>' . "\n";
        $rss_feed .= '<description>' . $category_name . ' RSS Feed</description>' . "\n";
        $rss_feed .= '<atom:link href="' . esc_url(site_url("/category/$category_slug/feed/")) . '" rel="self" type="application/rss+xml" />' . "\n";

        // Query posts in the current category
        $args = array(
            'cat' => $category_id,
            'posts_per_page' => 10, // Adjust as needed
        );
        $category_posts = new WP_Query($args);

        while ($category_posts->have_posts()) {
            $category_posts->the_post();
            $rss_feed .= '<item>' . "\n";
            $rss_feed .= '<title>' . get_the_title() . '</title>' . "\n";
            $rss_feed .= '<link>' . get_permalink() . '</link>' . "\n";
            $rss_feed .= '<pubDate>' . get_the_time('D, d M Y H:i:s O') . '</pubDate>' . "\n";
            $rss_feed .= '</item>' . "\n";
        }

        wp_reset_postdata();

        $rss_feed .= '</channel>' . "\n";
        $rss_feed .= '</rss>';

        // Output the feed
        header('Content-Type: application/rss+xml; charset=UTF-8');
        echo $rss_feed;
    }
}

add_action('do_feed_category', 'custom_category_feeds', 10, 1);
add_action('do_feed_category_rss2', 'custom_category_feeds', 10, 1);

Ето обяснение на кода:

  • Декларация на функцията: Кодът дефинира функция с име custom_category_feeds.
  • Списъци за включване и изключване на категории:
    • Дефинирани са два масива:
      • $included_category_ids: Този масив съдържа идентификаторите на категории, които искате да включите в емисиите.
      • $excluded_category_ids: Този масив съдържа идентификаторите на категории, които искате да изключите от емисиите.
  • Преминаване през категории: Кодът използва get_categories() за извличане на списък с всички категории.
  • Проверка на списъка с изключения: За всяка категория той проверява дали ИД на категорията е в $excluded_category_ids масив. Ако е така, кодът продължава към следващата категория (изключва я).
  • Проверка на списъка за включване: След това проверява дали категорията трябва да бъде включена. Ако $included_category_ids масивът не е празен и идентификаторът на категорията не е в този масив, кодът продължава към следващата категория (изключва я от включване).
  • Генериране на съдържание на RSS канал: Кодът продължава да генерира съдържанието на RSS канал за категории, които преминават проверките за включване и изключване. Кодът за генериране на съдържание на RSS канал не е показан, но трябва да бъде подобен на предишните примери.
  • Изведете емисията: И накрая, той задава подходящия тип съдържание за RSS емисията и повтаря съдържанието на RSS емисията.

    Основната характеристика на този код е способността да се указва както списък за включване, така и списък за изключване на идентификатори на категории, което ви дава прецизен контрол върху това кои категории са включени или изключени в генерираните RSS емисии, специфични за категорията.

    Вашата емисия за категории в WordPress

    Потребителите могат да използват URL структура, предоставена по-рано, за достъп до персонализираната емисия, специфична за категория, която сте създали в WordPress. Форматът на URL адреса за достъп до емисия за конкретна категория е както следва:

    http://yourwebsite.com/category/{category-name}/feed/

    Ето разбивка на това как да извикате емисията:

    1. Сменете yourwebsite.com с действителния ви домейн или URL адрес на уебсайта.
    2. Замени {category-name} със заглавието на категорията, за която искате да получите достъп до емисията. Охлювът е версия с малки букви, разделена с тирета на името на категорията. Например, ако името на вашата категория е Съвети за маркетинг, плужекът може да бъде маркетингови съвети.
    3. Добави /feed/ до края на URL адреса. Това показва, че искате да получите достъп до RSS или Atom емисията за конкретната категория.

    Например, ако уебсайтът ви е „example.com“ и искате да получите достъп до емисията за категорията „Маркетингови съвети“, URL адресът ще бъде:

    http://example.com/category/marketing-tips/feed/

    Потребителите могат да въведат този URL в своя уеб браузър или да използват приложения за четене на емисии, за да се абонират за емисията, специфична за категорията. Този URL ще им предостави RSS или Atom емисия за избраната категория, което ги прави лесни за актуализиране на съдържанието в тази категория.

    Douglas Karr

    Douglas Karr е главен маркетинг директор, специализиран в SaaS и AI компании, където помага за мащабиране на маркетингови операции, стимулиране на генерирането на търсене и внедряване на стратегии, базирани на изкуствен интелект. Той е основател и издател на Martech Zone, водещо издание в… Още »
    Бутон "Нагоре" горе
    Затвори

    Открит е рекламен блок

    Разчитаме на реклами и спонсорства, за да се поддържаме Martech Zone безплатно. Моля, помислете за деактивиране на блокера на рекламите или ни подкрепете с достъпен годишен абонамент без реклами (10 щатски долара):

    Регистрирайте се за годишно членство