ホームページ制作 オフィスオバタ

ワードプレスのRSSにサムネイル画像を追加する

ワードプレスのRSS情報から、ホームページにブログの更新情報を掲載することがよくあります。

その際に、サムネイル画像も表示したい場合があります。
しかし、ワードプレスはRSSにサムネイル画像が追加されません。

そこで、ワードプレスのRSSにサムネイル画像を追加する方法について調べてみました。

RSSの「description」部分に画像を追加する

 いつものようにググって調べてみると、wordplessには標準でサムネイル画像を追加するための手順がありました。

functions.phpの一番下に以下のコードを貼り付けるとRSSに画像が付加されます。

function rss_post_thumbnail($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', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');
add_filter( 'wp_calculate_image_srcset_meta', '__return_null' );

あれ?画像の縮尺が1:1になっていない!?

 当然といえば当然ですが、この方法だと投稿時そのままの画像がRSSに反映されます。用途としてはRSSから記事の一覧表示を行いたいので、サムネイル画像は縮尺が1:1(正方形)になっていてほしいものです。

事実、ワードプレスでの記事一覧表示のサムネイル画像は、縮尺が1:1になっています。

そこでサムネイル画像を表示する方法を調べてみました。
それがこちらです。

function rss_post_thumbnail($content)
{
	global $post;
	if(has_post_thumbnail($post->ID)) 
	{
		$content = '<p>' . the_post_thumbnail('thumbnail') . '</p>' . $content;
	}
	return $content;
}

add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');
add_filter( 'wp_calculate_image_srcset_meta', '__return_null' );

わかりますでしょうか?

get_post_thumbnail_id($post->ID)をthe_post_thumbnail(‘thumbnail’)に変更しました。

これで、縮尺1:1にトリミングした画像が表示されるようになります。

もうちょっと欲を出して、情報を取りやすく整理してみました。

目的としてはこれで達成できているのですが、取り出し側の手間を考えて、もうちょっと調整してみました。

それがこちらです。

function rss_post_thumbnail($content)
{
	global $post;

	$imgurl = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'thumbnail');

	if(has_post_thumbnail($post->ID)) 
	{
		$content = '<imgurl>' . $imgurl[0] . '</imgurl><text>' . $content . '</text>';

	}
	return $content;
}

add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');
add_filter('wp_calculate_image_srcset_meta', '__return_null');

先の2つは、<img>タグをそのまま抜き取っていますが、これは画像のURLだけを抜き取ります。

wp_get_attachment_image_src()関数は、画像のURL、サイズなどの情報を抜き取ってくれます。

パラメータの’thumbnail’は、元画像でなく、サムネイル画像を取得するという意味です。ほかにも’medium’(中サイズ),’large’(大サイズ)’full’(原本サイズ)があります。

ちなみに、ワードプレスの「設定」→「メディア」からこれらの具体的なサイズを指定することができます。

<imgurl>、<text>タグはオリジナルタグですが、RSS取得をする際に、画像部分と本文部分を分割する必要があります。その際にしるしとしてタグがあるとべんりです。

※RSS取得するツールに、独自タグの使用ができない場合は、記述しないでください。

できる方ならば力業でワードプレスのデータベースから直接新着記事を取り出す方法もありますが、RSSを利用したほうが手軽です。

あと、ついで事ですがワードプレスはデフォルトでは、RSSに画像、文章が全文掲載されます。それはブログパクリをされ易くしています。

設定→表示設定 から、「RSS/Atom フィードでの各投稿の表示」を「抜粋のみを表示」に変更しておくと、RSSからのブログパクリはできなくなります。

RSSはうまく使っていきましょう。

モバイルバージョンを終了