WordPress → Как изменить RSS ленту

По умолчанию WordPress использует стандартные шаблоны для отображения RSS-ленты, которые расположены в wp-includes: feed-rss2.php (RSS 2.0 формат), feed-rss.php (RSS 0.92), feed-rdf.php (RDF/RSS 1.0), feed-atom.php (Atom), feed-atom-comments.php (лента последних комментариев, Atom), feed-rss2-comments.php (лента комментариев, RSS 2.0).

Наша задача: внести правки в RSS ленту, которую WordPress формирует по умолчанию.

Для этого копируем wp-includes/feed-rss2.php и помещаем в папку темы /feeds/myfeed-rss2.php и модифицируем нужным нам образом (к примеру меняем формат заголовков). А в function.php добавляем код:

function my_feed_rss2( $for_comments ) {
   $rss_template = get_template_directory() . '/feed/myfeed-rss2.php';
   if( file_exists( $rss_template ) )
      load_template( $rss_template );
   else
      do_feed_rss2( $for_comments ); // вызов функции по умолчанию
}
remove_all_actions( 'do_feed_rss2' );
add_action( 'do_feed_rss2', 'my_feed_rss2', 10, 1 );

Готово.

Например я изменил в RSS ленте способ отображения title — добавил категорию записи:

<title><?php $category = get_the_category(); echo $category[0]->cat_name. ': ' .get_the_title(); ?></title>
  • Pingback: WordPress: Вывод поста до тега more()

  • А по какому адресу будет выводиться feed?

  • Артур

    У меня больше вопросов, стилизировать можно ? допустим site.com/comments/feed какой файл отвечает, и подключить стили СSS можно ли?

  • Спасибо. Решил свою проблему! Лайк однозначно