RSS + FeedBurner = лента новостей

В системе WordPress лента RSS для трансляции Ваших новостей уже является встроенной функцией, как и на большинстве современных CMS. Однако возможности ее весьма ограничены, поэтому большинство блоггеров используют специальный плагин ленты rss, подключенный к одному из сторонних сервисов, самым известным из которых является Feedburner — его мы и настроим в данном уроке.
Разумеется, обязательно помотрите подробный получасовой видеоурок по настройке FeedBurner и подключению к нему ленты RSS вашего блога, а я сейчас лишь перечислю основные шаги, которые Вам нужно предпринять:

1. Завести свой аккаунт в Google — этот монстр недавно выкупил фидбернер и создав однажды в гугле учетную запись, вы сможете пользоваться очень многими системами, входящими в этот альянс. Так что рекомендую это сделать вне зависимости от того, будете ли Вы настраивать свою ленту RSS WordPress здесь или нет — он вам в будущем все равно понадобится. Подробное видео по созданию аккаунта Google я разбираю в уроке про AdSense.

2. Добавить RSS ленту Вашего блога в Feedburner и детально настроить ее отображение

3. Установить плагин RSS ленты FeedBurner FeedSmith и подключить к нему дефолтную ленту (ее адрес www.вашсайт.ru/feed). Плагин создает редирект с этого адреса по умолчанию на новый адрес вашей ленты в Feedburner.

4. Установить ссылку на WordPress ленту RSS и форму подписки для получения новостей по email.

Плюс к этому хочу еще добавить, что с помощью сервиса feedburner.com можно детально настроить отображение вашей ленты — установить заголовок, логотип, лайки, формы подписки и даже подключить AdSense для заработка на самой ленте, — а также следить за статистикой подписки пользователей на ваши обновления.

Для учета статистики подписчиков на RSS ленту, при этом не посещая каждый раз сайт FeddBurner, можно установить и настроить специальный плагин, который будет информировать прямо в админке блога — FeedStats.
Интерфейс его выглядит так:

Но все, достаточно слов, смотрите — все сами поймете!





Лента RSS в FeedBurner без плагина

Для противников использования плагинов для перенаправления пользователей со стандартного адреса фида WordPress на FeedBurner прописываем в файле .htaccess следующий код:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
RewriteRule ^feed/?([_0-9a-z-] )?/?$ http://feeds.feedburner.com/ЗДЕСЬ_ВАШ_АККАУНТ [R=302,NC,L]
</IfModule>

Хаки для ленты новостей RSS

1. Запланированное время публикации

Если не хотите, чтобы новость не сразу публиковалась в ленте, а это полезно для того, чтобы поисковики проиндексировали сначала Вашу страницу в качестве первоисточника, а потом уже на FeedBurner, то вставьте такой код в functions.php:

function publish_later_on_feed($where) {
  global $wpdb;

 if ( is_feed() ) {
// формат даты
$now = gmdate('Y-m-d H:i:s');

// время задержки + device
$wait = '5'; // integer

//В каком параметре исчислять время задержки:
//MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
$device = 'MINUTE';

// add SQL-sytax to default $where
$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
  }
  return $where;
}

add_filter('posts_where', 'publish_later_on_feed');

В нем можно настроить формат даты, а также точное время задержки публикации в исчислении от минуты до года.

2. Счетчик RSS подписчиков

Хотите похвастаться большим подписным листом? Не обязательно вставлять код, который предлагается в фидбернере. Мы сделаем так: в файл функций вставим код:

//get cool feedburner count
$whaturl="http://api.feedburner.com/awareness/1.0/GetFeedData?uri=feedburner-id";

//Initialize the Curl session
$ch = curl_init();

//Set curl to return the data instead of printing it to the browser.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//Set the URL
curl_setopt($ch, CURLOPT_URL, $whaturl);

//Execute the fetch
$data = curl_exec($ch);

//Close the connection
curl_close($ch);
$xml = new SimpleXMLElement($data);
$fb = $xml->feed->entry['circulation'];
//end get cool feedburner count

А в том месте шаблона, где хотите видеть этот счетчик вставляем строку:

<?php echo $fb; ?>

3. Исключить категории из ленты новостей

Не хотите, чтобы статьи из определенных рубрик публиковались в ленте? Не вопрос!
В functions.php добавляем:

function myFilter($query) {
  if ($query->is_feed) {
    $query->set('cat','-5'); //НЕ ЗАБУДЬТЕ ПОСТАВИТЬ ID СВОЕЙ КАТЕГОРИИ
  }
  return $query;
}

add_filter('pre_get_posts','myFilter');

4. Публиковать в ленте миниатюры записей

Для этого достаточно в файл функций добавить всего несколько строк

// show post thumbnails in feeds
function diw_post_thumbnail_feeds($content) {	global $post;	if(has_post_thumbnail($post->ID)) {		$content = '<div>' . get_the_post_thumbnail($post->ID) . '</div>' . $content;	}	return $content;}add_filter('the_excerpt_rss', 'diw_post_thumbnail_feeds');add_filter('the_content_feed', 'diw_post_thumbnail_feeds');

Поделись этой статьей с друзьями!

Это будет интересно прочитать:

  • Спасибо за урок, хочу согласиться, что через Feedburner rss ленту лучше всего сделать, к примеру rss ленты, которые мы сами не делаем ( если в теме есть rss ) мы переходим поним, но когда такие обычные rss я добавлял в сервисы RSS рассылок некоторые даже не хотели брать из-за ошибки.

    • Конечно, лучше использовать уже специально настроенный под это дело сервис =)

  • Спасибо за видео…почти все просмотрел…Вот теперь думаю…оставлять ли плагин? Код рулит. Кстати у тебя в ручном коде стоит ссылка на твою ленту…ты бы подписал, что нужно заменять на свою, а то у нас люди любят просто копировать и не разбираться…

  • Александр помогите, у меня при переходе по этой ссылкеhttp://fotomarket.kz/?feed=rss2 выпадает ошибка

    This page contains the following errors:

    error on line 2 at column 6: XML declaration allowed only at the start of the document
    Below is a rendering of the page up to the first error.

    • 1. Заходим по FTP на площадку Вашего домена;
      2. Заходим в корень Вашего сайта на wordpress;
      3. В папке wp-includes находим файлы feed-rss2.php и
      feed-rss2-comments.php и удаляем все строки сверху до строки:

      4. Далее просматриваем весь текст файла и убираем все пустые строки после ?>

      Больше данная ошибка на Вашем сайте не появится.
      Данная проблема присутствует в стандартных пакетах wordpress версий ниже 3.0

  • Александр спасибо за помощь всё работает, я сам не понял что сделал но всё работает =) ))

  • привет, Александр! [:-} O=)
    у меня вообще белый лист при изначальном переходе по адресу домен/?feed=rss2 или домен/feed

    уже не знаю, где искать инфу. ничего не нашла *SORRY*

  • Друзья, помогите. Никто не знает есть ли такая функция в подписке feedburners как добавить фото/обложку 3D для того, чтобы сделать подарок за подписку?

  • Спасибо, я сделала по-другому. Просто код вставила в отдельный виджет…)Так что заходите на сайт за подарками!!!

Добавить комментарий