it-swarm.com.ru

Как добавить изображение в Wordpress RSS-канал без плагина?

Я искал для добавления изображения с изображением в RSS-канал без плагина для WordPress. Я нашел несколько примеров и применил, как это было указано. Но все, что у меня есть сейчас - ничто. Все еще не могу добраться до изображения.

Последнее и лучшее (по моему мнению) решение (как сказано здесь ), которое я нашел, - это добавление следующего кода в functions.php текущей темы

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;
}
add_filter( 'the_content', 'featured_image_in_feed' );

Я не видел никаких изменений. Есть ли что-то еще, что нужно сделать?

Что я хочу сделать, так это добавить изображение в качестве еще одного ключа в XML. Было бы проще показать это для моего слайдера.

5
zkanoca

Вот отличный пример . Как отобразить избранные миниатюры постов в каналах WordPress

вставьте этот фрагмент кода в ваш файл functions.php темы

// display featured post thumbnails in WordPress feeds
function wcs_post_thumbnails_in_feeds( $content ) {
    global $post;
    if( has_post_thumbnail( $post->ID ) ) {
        $content = '<p>' . get_the_post_thumbnail( $post->ID ) . '</p>' . $content;
    }
    return $content;
}
add_filter( 'the_excerpt_rss', 'wcs_post_thumbnails_in_feeds' );
add_filter( 'the_content_feed', 'wcs_post_thumbnails_in_feeds' );
8
Robert hue

Основываясь на заметках здесь и многих других ресурсах, которые я прочитал, я придумал это решение специально для работы с конвертером RSS в электронную почту Mailchimp с помощью ленты из Wordpress. В их шаблонах используется расширение <media:content> для элемента item для заполнения макроса изображения. Этот код находится в functions.php темы.

// Add namespace for media:image element used below
add_filter( 'rss2_ns', function(){
  echo 'xmlns:media="http://search.yahoo.com/mrss/"';
});

// insert the image object into the RSS item (see MB-191)
add_action('rss2_item', function(){
  global $post;
  if (has_post_thumbnail($post->ID)){
    $thumbnail_ID = get_post_thumbnail_id($post->ID);
    $thumbnail = wp_get_attachment_image_src($thumbnail_ID, 'medium');
    if (is_array($thumbnail)) {
      echo '<media:content medium="image" url="' . $thumbnail[0]
        . '" width="' . $thumbnail[1] . '" height="' . $thumbnail[2] . '" />';
    }
  }
});

Выбор размера изображения "средний" также может быть "миниатюра", если вы хотите один меньше.

2
vick

Я попробовал выбранный ответ и получил действительно большое изображение в своей ленте. Я бы рекомендовал добавить размер изображения в код.

// display featured post thumbnails in RSS feeds
function WPGood_rss_thumbs( $content ) {
    global $post;
    if( has_post_thumbnail( $post->ID ) ) {
        $content = '<figure>' . get_the_post_thumbnail( $post->ID, 'thumbnail' ) . '</figure>' . $content;
    }
    return $content;
}
add_filter( 'the_excerpt_rss', 'WPGood_rss_thumbs' );
add_filter( 'the_content_feed', 'WPGood_rss_thumbs' );

Я использовал "миниатюру" для своего канала, но "средний" может работать лучше для некоторых сайтов.

2
heytricia

Я попробовал эти ответы выше и не смог заставить его работать. Он продолжал добавлять мое изображение в области описания.

Я нашел это на другом сайте и немного изменил, и вуаля он начал работать.

add_action('rss2_item', function(){
global $post;
 if(has_post_thumbnail($post->ID)){
  $output = '';
  $thumbnail_ID = get_post_thumbnail_id( $post->ID );
  $thumbnail = wp_get_attachment_image_src($thumbnail_ID, 'thumbnail');
  $output .= '<post-thumbnail>';
  $output .= '<url>'. $thumbnail[0] .'</url>';
  $output .= '<width>'. $thumbnail[1] .'</width>';
  $output .= '<height>'. $thumbnail[2] .'</height>';
  $output .= '</post-thumbnail>';

  echo $output;
 }
});
0
Osmar Lopez