15.12.2008 23:3810 полезных RSS-приемов для WordPress
Перевод статьи
RSS – это одна из чрезвычайно простых и, в то же время, чрезвычайно мощных технологий. На данный момент RSS фактически стал стандартом для синдикации блогов (одновременной публикации контента на нескольких веб-узлах) и широко используется в личных и корпоративных целях; например, в блогах. Принимая во внимание то, что многие из таких блогов работают на движке WordPress, в этом посте мы постараемся охватить некоторые (как нам кажется) малоизвестные, но полезные RSS приемы, которые помогут вам использовать этот сервис более эффективно и без использования ненужных и корявых плагинов WordPress.
Рассмотрим 10 полезных и малоизвестных RSS приемов для WordPress. В каждом пункте статьи описывается проблема и предлагается ее решение. При этом каждое решение подробно описано, чтобы вы могли не просто решить свои проблемы, связанные с RSS, но и при этом понимали, что вы делаете. Таким образом, вы сами будете модифицировать свою тему WordPress, а не наполнять ее непонятными исходными кодами.
1. Контролируйте время появления ваших постов в RSS

Проблема. Бывало ли у вас такое, что вы опубликовали статью и сразу же заметили ошибку? Конечно же, вы можете исправить ошибку, но есть другая проблема: статья уже опубликована в вашем RSS фиде. Чтобы избежать подобных проблем, используйте следующий рецепт, чтобы создать задержку между публикацией поста и его появлением в RSS фиде.
Решение. Для использования этого приема просто вставьте следующий код в файл function.php вашей темы. Если в вашей теме нет такого файла, создайте его.
function publish_later_on_feed($where) {
global $wpdb;if ( is_feed() ) {
// timestamp in WP-format
$now = gmdate('Y-m-d H:i:s');// value for wait; + device
$wait = '5'; // integer// http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
$device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR// 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');
Объяснение кода. Указанный выше код добавит 5-минутную задержку между публикацией поста в вашем блоге и его появлением в RSS фиде. Для изменения времени задержки измените значение переменной $wait в девятой строке.
2. Редирект фидов WordPress на фиды FeedBurner
Проблема. Блоггер-новичок обычно начинает пользоваться сервисом FeedBurner только после того, как увидел его во многих других блогах, и понял, насколько полезен этот сервис. Новички регистрируются и начинают им пользоваться, но их более ранние подписчики остаются в подписке на WordPress-фид, который тогда был установлен по умолчанию.
Еще одна проблема: часто ли вы меняете свою тему? Если да, то вам, наверное, уже надоело редактировать каждое обращение к bloginfo(’rss2_url’) и менять его на URL своего FeedBurner-фида.
Решение. Есть простое решение обеих указанных выше проблем: используйте переадресации сервера. Создайте резервную копию файла .htaccess, который находится в корневом каталоге вашего веб-сервера.
Отредактируйте файл .htaccess, добавив в него следующий код. Не забудьте заменить URL фида своим URL-адресом.
# temp redirect wordpress content feeds to feedburner
<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/wprecipes [R=302,NC,L]
</IfModule>
Сохраните файл. Все готово!
Объяснение кода. Каждый раз, когда пользователь нажимает ссылку http://www.yourblog.com/feed, он перенаправляется по адресу http://feeds.feedburner.com/yourblog. Так вы никогда не потеряете подписчика, даже если вы будете менять свою тему по два раза в день, и вам больше не придется вручную редактировать ссылки на RSS фид.
3. Помещайте рекламу (или что угодно) в свой RSS фид

Проблема. Сейчас все больше и больше людей зарабатывают на RSS фиде, в том числе и многие блоггеры, которые хотят максимально увеличить свой доход. FeedBurner может поместить рекламу AdSense в ваши разделы фида, но для этого у вас должно быть не менее 500 подписчиков, кроме того, нельзя использовать какую-либо другую рекламу, за исклчением рекламы AdSense, предоставляемой самим FeedBurner.
Решение. Есть возможность поместить любой вид рекламы в свой RSS фид. Например, можно использовать ссылку на бесплатную тему WordPress только для своих RSS подписчиков.
Для использования этого приема выполните следующие несложные действия:
1. Отредактируйте файл functions.php в своей теме. Если в вашей теме нет файла functions.php, создайте его.
2. Вставьте следующий код в файл functions.php.
<?php
function insertAds($content) {
$content = $content.'<hr /><a href="http://www.wprecipes.com">Have you visited WpRecipes today?</a><hr />';
return $content;
}
add_filter('the_excerpt_rss', 'insertAds');
add_filter('the_content_rss', 'insertAds');
?>
Сохраните файл. Теперь ваша реклама отображается в RSS фиде!
Объяснение кода. Я видел много случаев использования подобных приемов в Интернете, но они всегда требуют редактирования основных файлов WordPress, чтобы достичь такого же результата. Конечно же, редактирование основных файлов WordPress – это очень плохая идея, потому что тогда вам придется повторно редактировать эти файлы после каждого обновления движка. Вместо этого, в нашем приеме для добавления контента в RSS фид используется функция WordPress add_filter() без редактирования основных файлов движка.
4. Форматируйте свои изображения для читателей фида

Проблема. Вы потратили кучу времени, чтобы написать и отформатировать свой пост и вставить красивые скриншоты. На вашем блоге все смотрится прекрасно. Но, к сожалению, ваш пост выглядит не так красиво, когда он отображается в Google Reader или любом другом RSS ридере.
Решение. Это происходит потому, что фид-ридеры отображают картинки в тексте:

Чтобы избежать этой проблемы, добавьте класс CSS для отображения картинки отдельным блоком. В движке WordPress используется встроенный класс «center».
<img src="http://78.46.108.98/images/wordpress-rss-hacks/myimage.jpg" alt="This is my image" class="center"/>
Продолжение в следующем посте 10 полезных RSS приемов для WordPress (Окончание)
Хотите быть в курсе лучших зарубежных материалов? Тогда подписывайтесь на мой фид.Похожие статьи:
Комментарии 14 | Рубрики: Wordpress

17 Дек 2008 - 13:56
полезные советы ! спасибо за перевод и пояснения !
17 Дек 2008 - 16:20
Может вопрос глупый, но как выборочно отправлять посты в rss?=)
17 Дек 2008 - 23:34
[...] Источник [...]
25 Дек 2008 - 20:39
Очень полезная вещь, спасибо!!
28 Янв 2009 - 3:03
спасибо за советы.
На самом деле, я долго возился с перенаправлением фида с feedburneк в своё время…
08 Фев 2009 - 21:50
Я только не сейчас обратил внимание на плохие результаты валидации своего блога. Очень рад что попалась Ваша статья, но поскольку новичек в данном деле прошу помочь советом в исправлении ошибки. Рад буду если поможете! Заранее спасибо!
14 Фев 2009 - 18:28
спасибо, полезная статья, подскажите как избирательно помещать текст в RSS? у меня блог, в котором я когда то придумал как оформить музыкальный пост, но он некрасиво передается в RSS - много лишнего, менять дизайн поста на блоге неохота но RSS как то поменять нужно - вот пример поста - не хотелось бы чтоб линии передавались, а как отфльтровать я не знаю(
19 Март 2009 - 8:52
Отлично, спасибо.
Оч. полезная статья.
Взял на вооружение.
17 Июль 2009 - 13:35
Вы писали:
Сейчас все больше и больше людей зарабатывают на RSS фиде, в том числе и многие блоггеры, которые хотят максимально увеличить свой доход.
А как можно на нём заработать? Первый раз слышу, что на рсс можно заработать…
12 Окт 2009 - 21:47
Сейчас уже сняли ограничение на 500 подписчиков. ТЕперь любой может ставить реклааму в feed
01 Дек 2009 - 12:47
Меня интересует первый пункт, куда вставлять этот код. Я не очень ориентируюсь в коде, попытался скопировать этот код в самый конец файла после всего кода в function.php , но он у меня вылез наверху страницы сайта.
01 Дек 2009 - 12:49
И ещё один вопрос, у меня глючит фид http://feeds.feedburner.com/VictoryInvestors, на нём не отображаются уже несколько дней новые посты, может знаете в чём дело.
Спасибо
13 Дек 2009 - 12:11
может ты закры рсс? если поставить в колл-ве рсс -1 то оно отключится
06 Апр 2010 - 0:33
А можно ли в рсс помещать не все посты а только избирательно? например из определенной рубрики. Или просто галочку ставить помещать пост в фид или нет…