RSS является одной из тех технологий, которые являются чрезвычайно простыми, но чрезвычайно мощными. В настоящее время RSS является де-факто стандартом для синдикации блога, и он широко используется как в личных, так и в корпоративных условиях; например, в блогах. И потому, что большой процент этих блогов работать на WordPress, мы рассмотрим в этой должности некоторые (надеюсь) относительно неизвестны, но полезные RSS связанных трюки и хаки, которые помогут вам использовать RSS в более эффективным способом — и без ненужных и коренастый WordPress plug-ins. Эта статья была рассмотрена и обновлена 24 ноября 2016 г.
Дальнейшее чтение на SmashingMag:
- Легко настроить WordPress’ По умолчанию Функциональность
- 10 советов по оптимизации вашей темы WordPress
- Руководство по стандартам кодирования WordPress
- Дать единицу испытаний для WordPress плагины
Давайте взглянем на 10 полезных, но довольно неизвестных RSS-трюки для WordPress. Каждый раздел статьи представляет собой проблему, предлагает решение и дает вам объяснение решения, так что вы можете не только решить некоторые из ваших проблем, связанных с RSS, но и понять, что вы на самом деле делаете. Таким образом, вы можете убедиться, что ваша тема WordPress остается под вашим контролем и не раздутой с некоторыми неясными исходный код.
1. Контроль, когда ваши сообщения доступны через RSS
Проблема. Вы когда-нибудь публиковали статью, а затем сразу заметили ошибку? Конечно, вы можете отодвить его, но есть еще одна проблема: статья уже опубликована в вашем канале RSS. Чтобы избежать такого рода проблем, используйте этот рецепт, чтобы создать задержку между публикацией публикации публикации и его наличие в RSS-канале.
Решение. Чтобы применить этот хак, просто вставьте следующий код в файл функции вашей темы. Если ваша тема не имеет этого файла, просто создайте его.
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 переменной на строке 9.
Источников
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 абонента, и даже если вы измените тему два раза в день, вам никогда не придется вручную отменить ссылки RSS канал снова.
Источников
- Перенаправить WordPress каналы FeedBurner через htaccess (Redux)
- Как: перенаправить WordPress RSS каналы FeedBurner с .htaccess
3. Вставьте объявления (или что-нибудь еще) в вашем RSS-канале
Проблема. Монетизация RSS каналы в настоящее время становится обычной практикой, и многие владельцы блогов сделать это, чтобы максимизировать свои доходы. FeedBurner может вставить объявления AdSense в ваши элементы ленты, но для получения квалификации необходимо не менее 500 подписчиков, и вы не можете использовать рекламу, кроме объявлений AdSense, предоставляемых FeedBurner.
Решение. Возможно, однако, вставить другие виды объявлений в свой RSS-канал. Вы можете, например, использовать ссылку на бесплатную тему WordPress только для ваших подписчиков RSS.
Следуйте этим простым шагам для выполнения этого хака:
- Отоверьте файл functions.php вашей темы. Если ваша тема не имеет файла functions.php, просто создайте его.
-
Вставьте следующий код в файл 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 основных файлов очень плохая идея, потому что тогда вам придется повторно редактировать файлы каждый раз, когда вы обновить свой блог. Вместо этого, этот хак использует функцию добавления фильтра () WordPress для вставки содержимого в ваш RSS-канал без редактирования каких-либо основных файлов.
Источников
4. Формат изображения для чтения каналов
Проблема. Вы приняли много времени, чтобы написать и форматировать свой пост и добавить красивые скриншоты. Это выглядит так хорошо на вашем блоге. К сожалению, когда сообщение отображается в Google Reader или любой другой RSS читателя, это не выглядит так здорово.
Решение. Это связано с тем, что большинство читателей корма отображают изображения в строке с текстом:
Чтобы избежать этой проблемы, добавьте класс CSS для отображения изображения в виде блока. WordPress предоставляет встроенныйкласс «центр»:
<img src="https://www.smashingmagazine.com/images/wordpress-rss-hacks/myimage.jpg" alt="This is my image" class="center"/>
Источников
5. Предоставьте своим читателям ленту для каждого поста
Проблема. Когда сообщение имеет много-много комментариев, это может быть трудно для читателей, чтобы следить за разговором. Большинство пользователей WordPress не знают об этом, но наш любимый движок блогов имеет встроенную функцию для предоставления RSS канал для комментариев в каждой должности.
Решение. Ну, этот рецепт на самом деле не взломать или что-нибудь: чтобы обеспечить RSS канал для комментариев в конкретном посте, просто позвоните в comment’rss’link () функции:
<?php comments_rss_link('» Comments RSS Feed'); ?>
Обновление: функция comment’rss-link() была унипрачена. Вместо этого используйте функцию post’comments-feed-link()
<?php post_comments_feed_link('» Comments RSS Feed'); ?>
Источников
6. Исключить категории из вашего RSS-канала
Проблема. Используете ли вы один из ваших категорий блога, чтобы читатели знали о новостях вашего сайта, или ваш блог особенность категории, которая не имеет ничего общего с остальной частью вашего содержания? Если это так, как правило, не очень хорошая идея, чтобы включить его в свой RSS-канал.
Решение. Вот как избавиться от одной из категорий в ВАШЕМ канале RSS:
- Во-первых, получить числовый идентификатор категории, который вы хотите исключить. Если вы не знаете, как получить идентификатор конкретной категории, вы можете узнать, как здесь.
- Если у вас есть идентификатор категории, который вы хотите исключить из rsS-канала, отображайте файл functions.php в вашей теме. Создайте файл, если он не существует.
-
Вставьте в нем следующий код:
function myFilter($query) { if ($query->is_feed) { $query->set('cat','-5'); //Don't forget to change the category ID =^o^= } return $query; } add_filter('pre_get_posts','myFilter');
- Сохранить файл, и вы сделали!
Объяснение кода. Этот хак работает точно так же, как и предыдущий: создать пользовательскую функцию, чтобы исключить категорию, которую вы не хотите появляться в вашем RSS-канале, а затем использовать супер-полезные функции добавления () чтобы применить его к pre’get’posts() Функция ядра WordPress. Минус важен перед числовым идентификатором. Без минуса будет использоваться только эта категория.
7. Отображение любой RSS Feed на вашем WordPress блог
Проблема. У вас есть более одного блога, или вы управляете форумом? Если это так, вы можете иметь возможность отображать любой RSS канал на вашем блоге WordPress.
Решение. Многие плагины могут сделать работу, но они не являются необходимыми на всех. WordPress имеет встроенный RSS-читатель, который используется, например, для отображения новостей на панели мониторинга. Все, что вам нужно сделать, это использовать его в вашей теме.
-
Вставьте следующий код в любом месте в вашей теме (лично, я бы положил его в боковой панели, колонтитул или, что еще лучше, шаблон страницы):
<?php include_once(ABSPATH.WPINC.'/rss.php'); wp_rss('http://feeds.feedburner.com/wprecipes', 3); ?>
- Сохранить его, и вы сделали. Это так же просто!
Объяснение кода. Первое, что мы сделали, это включить rss.php файл из WordPress ядра. Этот файл позволяет нам использовать функцию wp’rss() которая занимает два параметра: первый URL RSS-канала, а второй — количество отображаемых записей RSS.
Источников
8. Использование фито-специфических RSS-каналов
Проблема. Многие блоги говорить о многих различных темах: дизайн, программирование, блоги советы и т.д. Вы когда-нибудь сталкивались с блогом, в котором вы пользовались только одной категории сообщений? Если это так, вы должны обязательно рассмотреть вопрос о предоставлении одного канала в категории для ваших собственных читателей.
Решение. Допустим, вы хотели бы иметь возможность подписаться только на раздел инструментов TheGridSystem. URL-адрес категории:
http://www.thegridsystem.org/categories/tools/
Чтобы получить RSS-канал для этой категории, вы просто должны добавить /канал в конце URL:
http://www.thegridsystem.org/categories/tools/feed
Довольно просто, не так ли? Но очень полезно, тоже, на мой взгляд.
9. Список RSS-каналов по категориям
Проблема. Если вам нравится предыдущий хак, вы, вероятно, также хотите, чтобы иметь возможность отображать имена всех ваших каналов категории в списке для ваших читателей.
Решение.
- Изымайте любой из ваших файлов темы, где вы хотите перечислить ваши категории и сопровождающие их каналы.
-
Вставьте следующий код:
<?php wp_list_categories('feed_image=http://www.myblog.com/image.gif&feed=XML Feed&optioncount=1&children=0'); ?>
- Сохранить файл. Вы категории теперь будут отображаться, вместе с их RSS-каналы!
Объяснение кода. Этот хак использует только старые добрые wp’list-categories() функция, с двумя параметрами. Во-первых, это feed-образ, который позволяет нам указать URL-адрес, который будет отображаться в виде изображения канала. Вторым параметром является канал, который используется для определения формата корма.
10. Получить Rid RSS каналы чистый путь
Проблема. Допустим, вы используете WordPress в качестве CMS для управления своим онлайн портфолио или веб-сайт вашей компании. В таких случаях, RSS-канал не так полезно, и некоторые люди, вероятно, захотите удалить его.
Решение. Я видел много «хаки» в Интернете, где люди говорят, что вы просто должны удалить включить на WP-settings.php основной файл. Я не думаю, что вы должны когда-либо отодвигать основной файл. Вместо этого, следующий хак будет делать работу. Просто вставьте этот код в файл functions.php вашей темы:
function fb_disable_feed() {
wp_die( __('No feed available,please visit our <a href="'. get_bloginfo('url') .'">homepage</a>!') );
}
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);
Источников
Источник: smashingmagazine.com