Как вставить миниатюры изображений в RSS

Настройки

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

Как вставить миниатюры изображений в RSS

Вариант первый

Первый вариант был опубликован в посте Как улучшить RSS без плагинов. Откройте файл functions.php и добавьте в него такой код:

function feedFilter($query) {
	if ($query->is_feed) {
		add_filter('the_content', 'feedContentFilter');
		}
	return $query;
}
add_filter('pre_get_posts','feedFilter');

function feedContentFilter($content) {
	$thumbId = get_post_thumbnail_id();

	if($thumbId) {
		$img = wp_get_attachment_image_src($thumbId);
		$image = '';
		echo $image;
	}

	return $content;
}

Вариант второй

Второй вариант попроще, но результат тот же. В нем так же понадобиться файл functions.php. Добавьте в него такой код:

function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) .
'</p>' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');

add_filter('the_content_feed', 'rss_post_thumbnail');

Оба варианта будут работать, если у вас в блоге активированы и настроены миниатюры.

Несколько сопутствующих ссылок о миниатюрах:
Как настроить миниатюры
Как добавить в тему поддержку миниатюр

Если вы не хотите редактировать файлы, то можете воспользоваться плагином MediaRSS with Post Thumbnail.

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий

  1. Мария

    Оба кода отлично работают в IE. В Мозиле почему-то начинает отдаваться не анонс, а целый пост, что мне не к чему — я настраиваю рассылку через ленту RSS. Пришлось убрать, хотя, конечно, очень обидно :((

    Ответить
    1. dbaik

      поменяйте get_the_content(); на get_the_excerpt();

      Ответить