web-dev-qa-db-ja.com

プラグインなしでWordpressのRSSフィードに画像を追加する方法?

WordPress用のプラグインなしでRSSフィードにフィーチャーイメージを追加することを検索しました。私はいくつかの例を見つけ、それがどのように指示されたかを適用しました。しかし、私が今持っているのは何もない。それでも画像に到達することはできません。

(私によると)最後で最良の解決策(と言われるように - ここ )私が見つけた現在のテーマの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のもう1つのキーとしてフィーチャーイメージを追加することです。スライダーの方が見やすいでしょう。

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

ここにあるメモや私が読んだ他の多くのリソースに基づいて、Wordpressからのフィードを使ってMailchimp RSS to Emailコンバーターを操作するためのこのソリューションを思いつきました。それらのテンプレートは、それらの画像マクロを生成するためにitem要素への<media:content>拡張を使います。このコードはテーマの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' );

私は自分のフィードに 'thumbnail'を使用しましたが、 'medium'はサイトによってはうまく機能するかもしれません。

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