WordPress:RSSフィードにmoreタグを入れた箇所までの内容だけを出力
記事の作成時にmoreタグを使用して抜粋の指定をしている場合、RSSにもmoreタグを入れた箇所までの内容だけを出力してフィードさせるようにします。
抜粋の設定で表示させる文字数に制限をかけていても、RSSフィードでは文字数に関係なくmoreタグを入れた箇所までの内容が全て表示されるようになります。
RSSフィードにmoreタグを入れた箇所迄の内容だけを出力
function.phpに以下を追加します。
function.php
function my_content_feeds($content) { global $post, $more; $more = false; $content = apply_filters('the_content', get_the_content('')); $content = str_replace(']]>', ']]>', $content); return $content; } add_filter('the_excerpt_rss', 'my_content_feeds'); add_filter('the_content_feed', 'my_content_feeds');
moreタグ迄の表示で改行や段落、画像を無効にしたい場合は、5行目の下に以下を追加することで無効にすることが出来ます。
$content = strip_tags($content); $content = str_replace(array("rn","r","n","t"), '', $content);
この2行の追加することで、RSSに出力される該当箇所のHTMLタグを取り除き、それにより発生する余分なスペースや改行を削除する処理を行います。
RSSフィードにmoreタグを入れた箇所迄の内容とアイキャッチ画像を出力
moreタグ迄の出力内容と一緒に、記事に設定したアイキャッチ画像もRSSフィードに出力させたい場合は、function.phpに以下を追加します。
function.php
function my_content_feeds($content) { global $post, $more; $more = false; $content = apply_filters('the_content', get_the_content('')); $content = str_replace(']]>', ']]>', $content); if(has_post_thumbnail($post->ID)) { $content = '<p>' . get_the_post_thumbnail($post->ID) . '</p>' . $content; } return $content; } add_filter('the_excerpt_rss', 'my_content_feeds'); add_filter('the_content_feed', 'my_content_feeds');
出力するアイキャッチ画像のサイズを変更する場合は、
7行目の get_the_post_thumbnail($post->ID) を以下のように変更します。
/* サムネイルのサイズ */ get_the_post_thumbnail($post->ID, 'thumbnail') /* 中サイズ */ get_the_post_thumbnail($post->ID 'medium') /* 大サイズ */ get_the_post_thumbnail($post->ID 'large') /* フルサイズ */ get_the_post_thumbnail($post->ID 'full') /* 名前を付けてサイズ設定した場合 */ get_the_post_thumbnail($post->ID 'サイズ設定名')
以上、「WordPress:RSSフィードにmoreタグを入れた箇所までの内容だけを出力」でした。