WordPressのRSSでmoreタグ以前を配信し、画像や改行を有効にする方法(サムネイルの扱いも)
WordPress の RSS feed 内で more タグ以前のみを配信しつつ、画像や改行を有効にする方法をまとめておきます。
調べるより作ったほうが早そうだったんで、Wordpress のソースを漁って functions.php 内からフィルターフックだけでなんとかしました。って事で自分用メモ。
ここまでやっとけば RSS を the_content() 形式ベースでなんとでもカスタマイズできそうな。
※この記事の内容は、今後修正する可能性があります。
とりあえず、RSS のカスタマイズとして、
- 画像も含んだ本文を配信する
- more タグ以降は省略する
- 本文の最後に記事へのリンクを張る
- the_content と同様のフィルターをかける(<P></P>タグの有効化など)
- (ソースのコメント部を外した場合のみ)サムネイルを追加する
を詰め込んで、こんな感じのコードになりました。
function rss_the_content_basis($content) { // global $post; global $more; $more = 0; // Strip after MORE tag. $content = apply_filters('the_content',get_the_content('')); $content = str_replace(']]>', ']]>', $content); $content = $content.'<a href="'.get_permalink($post->ID).'">→[<続きはサイトで>]</a>'; // if(has_post_thumbnail($post->ID)) { // $content = '<p>'.get_the_post_thumbnail($post->ID).'</p>'.$content; // } return $content; } add_filter('the_excerpt_rss', 'rss_the_content_basis'); add_filter('the_content_feed', 'rss_the_content_basis');
基本的には ./wp-includes/feed.php の get_the_content_feed() の処理に手を加えただけ。functions.php に書いて使います。
フィルターフック「the_excerpt_rss」は追加しない場合もありそうな。
よく見てないんでアレですが、「RSS サムネイル」みたいなキーワードで軽くググッたらテンプレートファイルだけで出来るサンプルがパッとは出てこなかった気がして面倒だったので作ってみました。
けっこう適当にペペッと書いたので、使う時は確認の上でお願いします。
参考情報