Настраиваем RSS-ленту и разбираемся для чего она может быть нужна. По умолчанию у сайтов wordpress лента изначальна доступна по адресу site.ru/feed/.
Доработка RSS-ленты
Добавить в ленту миниатюры записей
function img_rss($content) {
global $post;
if ( has_post_thumbnail( $post->ID ) ) {
$content = '' . get_the_post_thumbnail( $post->ID, 'thumbnail', array( 'style' => 'float:left; margin:0 10px 10px 0;' ) ) . '' . $content;
}
return $content;
}
add_filter('the_excerpt_rss', 'img_rss');
add_filter('the_content_feed', 'img_rss');
RSS-лента определенных категорий
Чтобы получить RSS определенных категорий, то нужно в URL указать эти категории:
https://site.ru/category/articles/feed/ — для одной
https://site.ru/category/articles,news/feed/ — для нескольких
Если включен плагин Remove Category URL, то вид ссылок также измениться:
https://site.ru/articles/feed/ — для одной
https://site.ru/articles,news/feed/ — !не дает сделать такой фид
Rss по метке
https://site.ru/tag/seo/feed
Исключить из общего фида (https://site.ru/feed/) какие-либо рубрики:
function ac_exclude_from_rss($query) {
$cats_to_exclude = array( 64, 16); //перечисляем через запятую id рубрики, которые нужно исключить из RSS
if ($query->is_feed && !$query->is_category($cats_to_exclude) ) {
set_query_var('category__not_in', $cats_to_exclude);
}
return $query;
}
add_filter('pre_get_posts','ac_exclude_from_rss');
Вывод на сайте WP записей из другого сайта на WP
<?php if( function_exists('fetch_feed') ){
$feed = fetch_feed('http://site.ru/proekty-domov/hotels/feed/');
$limit = $feed->get_item_quantity(5); // задаем количество статей
$items = $feed->get_items(0, $limit); // создаем массив элементов фида
if( $limit == 0 )
echo 'Фид пустой или недоступен.';
else
foreach( $items as $item ){ ?>
<div class="hentry">
<h3 class="post-title"><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a></h3>
</div>
<?php }
} ?>
Есть существенный недостаток этого метода — невозможно вывести миниатюру.