Рубрика: RSS
Как изменить частоту обновления виджета «RSS»?
Стандартный виджет "RSS" не позволяет задать время обновления указанной RSS-ленты. По умолчанию, данный виджет проверяет обновления RSS-ленты каждые 43200 секунд (12 часов). Это время можно уменьшить или увеличить с помощью следующего кода, вставленного в файл functions.php вашей темы:
Как добавить подпись к записям в RSS без плагинов?
Подпись к записям в RSS лентах не только улучшает вид вашей ленты, но и служит для более серьезной цели - она препятствует воровству вашего контента различными автоматическими парсерами, которые таким нехитрым способом пополняют контент своих сайтов. Да, конечно, при желании парсеры можно научить удалять подписи, но возиться с этим никто не хочет, а поэтому подписи это неплохой вариант защиты от воровства. Полноценную подпись к записям в RSS можно получить и без использования дополнительных плагинов. Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:
Как добавить произвольные типы записей в главную RSS ленту?
WordPress по умолчанию не включает в основную RSS ленту сайта записи произвольных типов (в ней публикуются только стандартные записи - 'post'). Это можно исправить с помощью небольшого сниппета кода, добавленного в файл functions.php вашей темы:
//добавление произвольных типов в RSS ленту start function wph_feed_all($vars) { if (isset($vars['feed']) && !isset($vars['post_type'])) $vars['post_type'] = array('post', 'custom_type1', 'custom_type2'); return $vars; } add_filter('request', 'wph_feed_all'); //добавление произвольных типов в RSS ленту end |
Где 'custom_type1' и 'custom_type2' это ваши произвольные типы записей. С помощью этого же кода можно добавить в RSS ленту еще и страницы вашего сайта. Для этого включите в указанный код тип 'page' и все страницы вашего сайта будут попадать в RSS ленту наравне с прочими записями.
Как выводить записи в RSS до тега <!—more—>?
В WordPress уже очень давно выпилили возможность выводить в RSS текст записей до тега <!--more--> (тег "Далее" в визуальном редакторе), оставив для вывода лишь два варианта: "Полный текст" и "Анонс". При выводе в RSS полного текста записи вы рискуете тем, что подписчики будут читать ваши статьи в своей RSS-читалке, не переходя на ваш сайт. При выводе же анонсов весьма велика вероятность, что вы не сможете заинтересовать читателей, так как анонс это маленький огрызок текста с вырезанной разметкой (картинок в анонсе не будет). Вот и выходит, что наилучшим вариантом для всех будет вывод в RSS текста записи до тега <!--more-->.
Как задержать публикацию записей в RSS?
WordPress обновляет RSS ленты сайта немедленно после публикации записей. Это плохо тем, что лишает вас возможности быстро исправить опечатку в только что опубликованной записи. То есть, конечно, опечатку вы исправите, и запись будет обновлена в RSS ленте тоже. Беда тут только в том, что многие RSS читалки кэшируют RSS ленты и не будут их обновлять без появления в них нового контента (то есть новой записи). Чтобы избежать такой ситуации можно сделать задержку публикации записи в RSS с помощью такого кода в файле functions.php вашей темы:
//задержка публикации записей в RSS start function whp_feed_pause($where) { global $wpdb; if (is_feed()) { $now = gmdate('Y-m-d H:i:s'); $wait = '5'; $device = 'MINUTE'; $where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait "; } return $where; } add_filter('posts_where', 'whp_feed_pause'); //задержка публикации записей в RSS end |
Где число 5 это количество минут задержки перед публикацией записей в RSS.
Как вывести миниатюру записи в RSS ленте?
Во многих темах активно используется "Миниатюра записи", назначаемая при добавлении записи. Однако, установленная миниатюра не является непосредственно частью записи и требует отдельного кода вывода. В темах миниатюру выводят с помощью функции the_post_thumbnail. Недостаток такого добавления и вывода миниатюры записи состоит в том, что в RSS-ленту запись попадает без миниатюры, что зачастую бывает неприемлемо. Исправить данную ситуацию просто, для этого вам необходимо добавить в файл functions.php вашей темы следующий код:
//добавление миниатюры записи в RSS start function thumbnail_in_feed($content) { global $post; if(is_feed()) { if (has_post_thumbnail($post->ID)){ $output = get_the_post_thumbnail($post->ID, 'medium', array('style' => 'float:right; margin:0 0 10px 10px;')); $content = $output . $content; } } return $content; } add_filter('the_content', 'thumbnail_in_feed'); //добавление миниатюры записи в RSS end |
Размеры миниатюры в RSS-ленте можно менять:
Как перенаправить RSS-ленту на FeedBurner?
Практически все веб-мастеры, у которых не отключены RSS-ленты, "прожигают" их на сервисе FeedBurner. Как правило, перенаправление RSS-лент на сервис FeedBurner осуществляется плагинами вроде FD Feedburner Plugin, однако это можно сделать и без установки лишних плагинов.
Добавьте в файл .htaccess в корне вашего сайта код:
<ifmodule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} !^.*(FeedBurner|FeedValidator) [NC] RewriteRule ^feed/?.*$ http://feeds.feedburner.com/wphook [L,NC,R=302] </ifmodule> |
Добавить этот код можно прямо в начало файла .htaccess, убедитесь только, что указали в нем верную ссылку на свой фид. После этого при запросе ваших RSS-лент будет осуществляться перенаправление на сайт FeedBurner.