Рубрики
CMS WordPress Верстальщику

Добавляем миниатюру записи в RSS фид WordPress

WordPress может многое, но не все. Однако механизм хуков позволяет это исправить. Итак, стандартный RSS WordPress поставляется без картинок, но, почему бы не побаловать ваших пользователей картинками в ленте? Если картинка вставлена непосредственно в текст, то она будет в ленте, но если вы используете миниатюры записи и хотите показать их в ленте, то они не будут видны по умолчанию. Конечно, давно существуют плагины, которые позволяют сделать это, но не всегда хочется ставить плагин ради небольшого изменения функционала.
Все, что вам нужно сделать, для того, чтобы добавить в код RSS ленты изображение миниатюры записи — добавить в functions.php вашей темы код:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
add_filter( 'the_content', 'featured_image_in_feed' );
function featured_image_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;
}
?>

Обратите внимание на параметры функции get_the_post_thumbnail():

  1. ID поста
  2. Пресет картинки, который может быть: thumb, thumbnail, medium, large и post-thumbnail
  3. И третий параметр, передается в виде массива атрибутов, в данном случае передаются стили которые выровняют картинку по правой стороне и добавят отступы справа и снизу.

Изменяя первый и второй параметр вы можете добиться нужного для вас результата. Вот и все. Удачи.
За сниппет спасибо Hugh Lashbrooke (статья на английском).

3 ответа к “Добавляем миниатюру записи в RSS фид WordPress”

Прохор, действительно не самый лучший вариант. Что вы предложите вместо использования глобальной переменной?

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *