10 полезных фишек для RSS в WordPress

Авг 14 • WordPress • 1774 Views • Комментарии к записи 10 полезных фишек для RSS в WordPress отключены

RSS — это одна из тех технологий которая очень проста и в то же время просто незаменима. Сегодня RSS это де факто общепринятый стандарт для блогов, и используется повсеместно. Ну а так как большинство блогов в сети построено на WordPress, мы и рассмотрим все примеры применимо к данному движку. Некоторые фишки давно известны, но я уверен, что этот список поможет вам использовать свой RSS поток намного эффективнее, и все это без использования плагинов!

И вот к примеру, после этого можно выпить пиво киев, выбрать можно на сайте BeerPlace.com.ua

Как и в других моих постах про WordPress хочется построить описание в виде «проблема-решение-описание». Это самый оптимальный вариант описания таких вещей. Потому что вы будете знать, не только как это делается, но и почему делается именно так, а при желании и под себя перестроить.

Пожалуй, будем приступать.

1. Настраиваем время появление поста в RSS ленте

wp10rss_1

Проблема: Случалось ли у вас когда-нибудь такое, что вы опубликовали пост, и только потом заметили ошибку? Конечно, можно все исправить, но есть небольшая проблемка — пост уже попал в RSS-поток с ошибкой. Чтобы избежать таких проблем есть хороший рецепт – сделать задержку между публикацией поста на блоге и появлением его в RSS-ленте.

Решаем проблему: Чтобы решить эту проблему, нам необходимо вставить следующий код в файл function.php нашей темы:

123456789101112131415161718
function publish_later_on_feed($where) {	global $wpdb; 	if ( is_feed() ) {		// получаем текущее время		$now = gmdate('Y-m-d H:i:s'); 		// задержка		$wait = '5'; // integer 		$device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR 		$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";	}	return $where;} add_filter('posts_where', 'publish_later_on_feed');

Дополнение: В данном коде выставлена задержка между публикацией поста и обновлением RSS-потока в 5 минут. Для этого определена переменная $wait. Вы можете изменить значение по своему усмотрению.

2. Переадресация фида WordPress на фид из FeedBurner

Проблема: Большинство блогеров-новичков обычно начинают пользоваться сервисом FeedBurner только после того, как увидят установленный счетчик подписчиков на других блогах и представляют как это полезно и круто. Они регистрируются, устанавливают счетчик, но существующие подписчики уже подписаны на стандартный WordPress фид. Да еще и некоторые новые посетители продолжают подписываться на него.

Проблема №2: Если вы часто меняете темы оформления блога, вам необходимо будет постоянно заботиться о том, чтобы заменить стандартную функцию bloginfo (’rss2_url’) на адрес вашего FeedBurner канала.

Решаем проблему: Решение обоих проблем совсем не сложное, мы будем использовать редирект на сервере.
Добавляем следующий код в файл .htaccess в корневой директории и сохраняем

1234567
# temp redirect wordpress content feeds to feedburner RewriteEngine on RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC] RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC] RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/alaev/TxUH [R=302,NC,L]

Дополнение: Не забудьте изменить адрес канала на свой. Теперь, когда кто-нибудь нажмет на ссылку видаhttp://www.yourblog.com/feed он будет перемещен на http://feeds.feedburner.com/yourblog. Теперь вы никогда не потеряете своих подписчиков. Даже если будете менять тему оформления по десять раз на дню, вам не придется снова и снова вручную менять адрес RSS-канала.

3. Вставляем рекламу (или еще что-нибудь) в RSS-канал

wp10rss_3

Проблема: Монетизация RSS-ленты уже стала обыденной вещью, особенно за рубежом, и многие блогеры используют эту тактику для увеличения своих доходов. FeedBurner может вставить рекламу AdSense в ленту, но есть некоторые ограничения по подписчикам, чтобы иметь такую возможность. Да и вставить что-то другое кроме AdSense не получится, а это неудобно.

Решаем проблему: Всегда есть возможность вставить что угодно и куда угодно =) Вот, например, вы можете вставить ссылку на что-нибудь «вкусненькое» только для своих подписчиков.
Для этого требуется добавить следующую функцию в файл вашей темы functions.php

12345678
А вы уже прокомментировали мои фотографии?

'; return $content;}add_filter('the_excerpt_rss', 'insertAds');add_filter('the_content_rss', 'insertAds');?>

Дополнение: Существует много различных способов добиться нужного результата, но они требуют вмешательства в код. Этот же способ использует только функцию add_filter () для вставки нужного элемента без необходимости править код движка.

4. Форматируем правильно изображения для RSS-ленты

Специально походил сейчас по блогам и таки нашел у нескольких человек эту проблему. Смотрите, проблемный участок я пометил красным.

wp10rss_4_1

А ведь гораздо красивее было бы сделать так

wp10rss_4_2

Или так

wp10rss_4_3

Проблема: Достаточно много времени все мы тратим на форматирование текста и изображений в записи на блоге. На самом блоге это может выглядеть хорошо, а вот как это будет выглядеть в RSS-ридере? Вы это проверяете? А стоит иногда это делать.

Решаем проблему: Чтобы разобраться с этой проблемой добавляем к изображению параметр style.

1
wp10rss_4_3

Дополнительно: padding:0 10px 5px 0; каждый из четырех параметров означает отступ начиная с верхнего заканчивая левым краем, по часовой стрелке. Следовательно в примере будет отступ для картинки 10px справа и 5px снизу.

5. Предоставьте вашим читателям подписку на комментарии

wp10rss_5

Проблема: Когда к какому-то из постов оставлено и до сих пор пишется очень много комментариев, читателям будет очень сложно следить за развитием событий. В большинстве тем оформления данная фишка не предусмотрена, но сам WordPress имеет востренную функцию, которая позволит организовать RSS-ленту комментариев к каждому посту.

Решаем проблему: Решение тут совсем простое, никаких хаков не потребуется. Достаточно добавить функцию comment_rss_link () в вашу тему. Смотрим следующий код:

1

6. Исключаем определенные категории из RSS-ленты

Проблема: Есть ли у вас на блоге категория или даже несколько категорий, которые вы бы не хотели включать в RSS? Может быть, эта категория с рекламными обзорами или вашими личными новостями, которая не интересна ценителям основного контента? Так что идея НЕ включать ее в общую ленту выглядит отличной!

Решаем проблему: Ниже описан алгоритм действий, который поможет исключить произвольную категорию из ленты:

  1. Вычисляем ID ненужной категории. Его вы можете узнать в настройках самой категории
  2. Теперь идет в редактирование файла вашей темы functions.php
  3. Вставляем в файл следующий код и сохраняем
12345678
function myFilter($query) {    if ($query->is_feed) {        $query->set('cat','-5'); //Не забудьте вставить свой ID ^_^    }return $query;} add_filter('pre_get_posts','myFilter');

Дополнительно: Не забудьте в коде заменить значение на ваш ID. Тут так же используется полезная функция add_filter () применимо к pre_get_posts ().

7. Выводим любую RSS-ленту на блоге

Проблема: Может быть у вас несколько блогов? Или даже у вас есть тематический форум? Тогда вам наверняка захочется сделать вывод последних новостей на своем блоге.

Решаем проблему: Все это можно решить плагинами, но мы четко решили не пользоваться ими. Да и к тому же WordPress имеет встроенный RSS-ридер который можно использовать для вывода новостей.
Идем в редактирование шаблона и в нужном месте (например, в сайдбаре или в футере) вставляем следующий код:

12

Дополнительно: Первое что мы делаем, это подгружаем стандартный rss.php. Этот файл нам позволяет использовать функциюwp_rss (), которая имеет два параметра: адрес rss-потока и количество выводимых элементов.

8. Используем отдельные RSS-ленты для разных категорий

Проблема: Некоторые блоги ведутся авторами, которые интересуются различными темами, иногда не связанными друг с другом. Например, программирование, веб-дизайн, блоггинг, seo и т.д. А что если читателю интересна только одна из этих тем? В этом случае стоит задуматься над тем, чтобы выводить новости для каждой категории отдельно.

Решаем проблему: Представьте, что вы хотите подписаться только на категорию WordPress, которая имеет следующий адрес:

1
http://alaev.info/post/category/wordpress

Чтобы получить адрес RSS-ленты для данной категории необходимо добавить только /feed в конце url’а, вот так:

1
http://alaev.info/post/category/wordpress/feed

Очень просто, не так ли? Но в то же время очень полезно, по-моему.

9. Выводим список RSS-подписок по категориям

wp10rss_9

Проблема: Если вам понравился предыдущий пункт, вам наверняка приглянется и этот. Сейчас мы займемся выводом названий категорий для подписки и картинки RSS.

Решаем проблему: Открываем необходимый файл вашей темы оформления, находим подходящее место и вставляем следующий код:

1

Дополнительно: Этот метод использует старую добрую функцию wp_list_categories (). Она содержит два параметра: feed_image – путь к изображению отображения фида и, собственно, параметр определяющий формат самого фида.

10. Избавляемся от RSS … совсем 😉

wp10rss_10

Сперва вам необходимо будет ответить на вопрос, а для чего вы используете CMS WordPress? Для своего портфолио или это сайт вашей фирмы? Тогда может быть вам и не нужна RSS-лента на сайте и надо ее удалить?

Решаем проблему: На эту тему есть много советов, например, некоторые советуют просто удалить include в файле wp-settings.php. Но я бы не стал так поступать и редактировать этот файл. Все можно сделать проще. Следующий код поможет вам решить проблему раз и навсегда. Вставляем его в functions.php:

123456789
function fb_disable_feed() {	wp_die( __('Фид недоступен, пожалуйста, перейдите на нашу главную страницу!') );} add_action('do_feed', 'fb_disable_feed', 1);add_action('do_feed_rdf', 'fb_disable_feed', 1);add_action('do_feed_rss', 'fb_disable_feed', 1);add_action('do_feed_rss2', 'fb_disable_feed', 1);add_action('do_feed_atom', 'fb_disable_feed', 1);

Ну вот и все, дорогие читатели. Сегодняшний экскурс в улучшение нашего сайта на WordPress закончен. Конечно, это только часть всего самого интересного. У меня в запасе огромное множество различных хаков, о которых вы, наверное, не слышали. Я буду делиться своими секретами с вами постепенно. Ведь вам потребуется время, чтобы все это переварить. Так что прочитайте еще раз и выберите то, что вам подходит, и идите пробовать и улучшать свое любимый блог. Удачи!

Related Posts

Comments are closed.

« »