WordPressのRSSフィードにアイキャッチ画像を含めたい

タイトルの通り「WordPressのRSSフィードにアイキャッチ画像を含めたい」みたいな形で検索すると出てくる答えはたいていfunctions.phpに

<?php
function post_thumbnail_in_feeds($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<div>' . get_the_post_thumbnail($post->ID) . '</div>' . $content;
}
return $content;
}
add_filter('the_excerpt_rss', 'post_thumbnail_in_feeds');
add_filter('the_content_feed', 'post_thumbnail_in_feeds');
?>

https://gist.github.com/2031704#file_gistfile1.aw

を追加しようみたいな答えが出てくる。

これはRSSフィードの <content> に追記する形で、アイキャッチ画像のみを分離してフィード配信できるものではない。
RSSに例えば<thumbnailimg></thumbnailimg>みたいな項目を用意してアイキャッチ画像を独立したデータとして配信すには、wp-includesフォルダ内の「feed-rss2.php」をいじる。
このファイルでxmlの形が決められているので、例えば以下のような感じにすればよい。(3行目が追記個所)

<title><?php the_title_rss() ?></title>
<link><?php the_permalink_rss() ?></link>
<thumbnailimg><![CDATA[<?php the_post_thumbnail(thumbnail) ?>]]></thumbnailimg>
<comments><?php comments_link_feed(); ?></comments>
<pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
<dc:creator><?php the_author() ?></dc:creator>

上記のようにCDATAセクションにするのをお忘れなく。

なお、

<?php the_post_thumbnail() ?>(テンプレートタグ/the post thumbnail Codex日本語版

だけだとパラメータの初期値であるsizeが入ってきて出力されるので、サイズをコントロールしたければ

<?php the_post_thumbnail(thumbnail) ?>

というように引数を指定する。

注意点はテーマファイルの外にあるファイルをいじくるので、WPのアップグレードとかあった時になくなっちゃうかもなのでそこは注意。
というか例えば3.4から3.5にアップグレードとかするとなくなりますので再度追記する必要ありです。

WordPressのRSSフィードにアイキャッチ画像を含めたい” への3件のコメント

  1. ピンバック: ごめんなさいごめんなさい | Whimsical Blog

  2. ピンバック: WordPressでRSSフィードが「抜粋」にしても「全文配信(表示)」になる件 | SEO対策とアフィリエイトに強いWordPressテーマ「Stinger」

  3. ピンバック: 稼ぐ仕組み!僕のWordPressのお勧めプラグインと設定方法を公開します。 | ENJILOG

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です