RSS配信が抜粋でも、Feedlyに画像を表示させる方法

  • 投稿 : 2015-09-19
feedly-image01.png

Wordpressの「設定」->「表示設定」で「RSS/Atom フィードでの各投稿の表示」を「 抜粋のみを表示」にしている人も多いかと思います。RSSで抜粋にすると、Feedlyでサムネイルとかが表示されなくなります。

また、全文配信しているのに、サムネイルが表示されない場合も当記事の方法を使えば表示されるようになる可能性は高いかと思います。

原因と対策

ブログのURL:http://blog.example.com/
RSSのURL:http://blog.example.com/feed/

URLの後ろにfeedを付けるとRSSのURLになるのでブラウザなどで中身を見てください。
ソース表示で、imgタグが入ってるかどうかを調べてみれば入っていないかと思います。それが原因です。
RSS配信の中に画像のURLが入ってないので表示しようがないということですね。

対策後に、上記を再度確認して、imgタグが入っていれば成功しています。Feedlyは次回の取得時から画像が反映されるかと思います。

・プラグインを使う方法(たぶん、一番簡単)
・アイキャッチ画像を表示させる方法
・記事の最初の画像を表示させる方法


プラグインでうまくいけば一番簡単だと思います。
プラグインでうまくいかない、使いたくない人は、
アイキャッチ設定をしている人は2つめを、そうでない人3つ目を試すとよいかも。

プラグインを使う方法(たぶん、一番簡単)

The RSS Image Feed adds the first image of a post to your feeds, even in firefox and even if you only display the excerpt.

WordPress.org


RSS Image Feedというプラグインを使うのが簡単だと思います。

アイキャッチ画像を表示させる方法

//----------------------
// RSSの先頭にimgを挿入
//----------------------
function rss_post_thumbnail($content) {
global $post;

 if(has_post_thumbnail($post->ID)) {
   $s_img = wp_get_attachment_url(get_post_thumbnail_id($post->ID));
   $content = "<p><img src='" .$s_img. "'/></p>" . $content;
 }
   return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
//add_filter('the_content_feed', 'rss_post_thumbnail');

テーマファイルの「functions.php」に上記を追加してください

全文配信の人は、
「add_filter('the_content_feed', 'rss_post_thumbnail');」の部分の//を削除すればOKです。

参考:
関数リファレンス/wp get attachment url - WordPress Codex 日本語版
テンプレートタグ/get post thumbnail id - WordPress Codex 日本語版

記事の最初の画像を表示させる方法

//--------------------------
// 記事内の画像を取ってくる
//--------------------------
function get_the_content_image($postid = null) {
	 global $post;
	 $first_img = '';
	 
	 if(is_null($postid)){
		 $p = get_post($postid);
	 }else{
		 $p = $post;
	 }

	 $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $p->post_content, $matches);
	 $first_img = $matches [1] [0];

	 if(empty($first_img)){ //Defines a default image
		 $first_img = "images/no-image.png";
	 }
	 return $first_img;
}
//----------------------
// RSSの先頭にimgを挿入
//----------------------
function rss_post_thumbnail($content) {
global $post;

   $s_img = get_the_content_image();
   $content = "<p><img src='" .$s_img. "'/></p>" . $content;

   return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
//add_filter('the_content_feed', 'rss_post_thumbnail');

テーマファイルの「functions.php」に上記を追加してください

全文配信の人は、
「add_filter('the_content_feed', 'rss_post_thumbnail');」の部分の//を削除すればOKです。

スポンサーリンク