Перенаправление RSS-фида без использования плагинов или редактирования .htaccess

Дата публикации:Июль 29, 2011

Среди предпочтений блоггеров не последнюю позицию занимает сервис Feedburner, позволяющий не только обрабатывать RSS каналы, что является его основной задачей, но и получать доступ к статистике, автоматически размещать рекламные объявления AdSense в фидах, а также отправлять уведомления сервисам о появлении нового контента. Специально для интеграции Feebdurner с WordPress сайтом был создан специальный плагин FD Feedburner, упрощающий создание подписки на обновления ресурса. Однако в этой статье мы не будем рассматривать работу с FD Feedburner, поскольку в сети очень много информации, посвященной его функционированию. Мы попытаемся выполнить редирект RSS-фида самостоятельно, с помощью отдельной функции.

Эта функция была бы довольно простой для написания, если бы не обязательная проверка user-agent (в нашем случае Feedburner). Мы должны открыть для Feedburner доступ к основному контенту, чтобы затем произвести редирект каналов. Выполнить перенаправление RSS-фида довольно просто. Для этого достаточно добавить в файл functions.php следующий код:

function diww_rss_feed_redirect() {
    global $feed;

    $new_feed = 'http://feeds.feedburner.com/wanderingbrit';

    if (!is_feed()) {
            return;
    }
    if (preg_match('/feedburner/i', $_SERVER['HTTP_USER_AGENT'])){
            return;
    }

    if ($feed != 'comments-rss2') {
            if (function_exists('status_header')) status_header( 302 );
            header("Location:" . $new_feed);
            header("HTTP/1.1 302 Temporary Redirect");
            exit();
    }
}

add_action('template_redirect', 'diww_rss_feed_redirect');

Не забудьте сменить адрес фида на свой собственный!

http://www.doitwithwp.com/redirect-wordpress-rss-feedburner/

Поделиться

3 комментария

  1. Хочу сменить дефолтный адрес RSS FEED на блоге на свой, есть какой-нибудь плагин этого?

    • Architect Of Ruin says:

      Нашел код для этого в functions.php:

      <?php
       function custom_rss($output, $show) {
       if (in_array($show, array('rss_url', 'rss2_url', 'rss', 'rss2', '')))
       $output = 'your_custom_rss_feed_url_goes_here';
       return $output; }
       add_filter('bloginfo_url', 'custom_rss', 10, 2);
       add_filter('feed_link', 'custom_rss', 10, 2);
       ?>

      Вместо your_custom_rss_feed_url_goes_here вставляется произвольный URL-адрес.

      Плагинов для этого не нашел.

  2. Вообще как-то странно, что RSS приходится настраивать в шаблонах темы, а не в ядре WP. Плагинов тоже не нашел.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.