タイトルの通り「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');
?>
を追加しようみたいな答えが出てくる。
これは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にアップグレードとかするとなくなりますので再度追記する必要ありです。
ピンバック: ごめんなさいごめんなさい | Whimsical Blog
ピンバック: WordPressでRSSフィードが「抜粋」にしても「全文配信(表示)」になる件 | SEO対策とアフィリエイトに強いWordPressテーマ「Stinger」
ピンバック: 稼ぐ仕組み!僕のWordPressのお勧めプラグインと設定方法を公開します。 | ENJILOG