WordPressのRSS feedは「全文を表示」と「抜粋のみを表示」から設定で選ぶことができます。
でも、
- RSS Feedに「全文を表示」するのは嫌だ!
- 一定の文字数(110文字)で区切る「抜粋」も嫌だ!
- かといって、新規投稿時に「抜粋」を手入力するのも面倒・・・。
- できれば、こちらが意図した区切り(more)までを表示したい。
という思いがありました。
これを叶えてくれるのが「More Feed Excerpt」というプラグイン。
このプラグインをインストールして有効化すると、moreまでの本文をRSS Feedに表示することができます。
でも、アイキャッチ画像が表示されずテキストのみ。(記事本文に画像を貼り付けていないためですが。参考記事)
なので、このプラグインを少し改良することにしました。
「More Feed Excerpt」プラグインの改良
改良したい点
- RSS Feedに「アイキャッチ画像」を追加する
- 抜粋文の後ろに「続きを読む」リンクを表示する
修正前のソース
バージョンは、0.1.1を使用。青い部分は、修正する箇所です。
function mfe_More_Feed_Excerpt($PostBody) { if ( is_feed() and !get_option('rss_use_excerpt') ) { $FeedSplitPattern = "/(<br \/>\s)?<span id=\"more-\d+\"><\/span>/"; $excerpts = preg_split($FeedSplitPattern, $PostBody, 2, PREG_SPLIT_NO_EMPTY); if ( count($excerpts) > 1 ) { $PostBody = balanceTags( $excerpts[0], $force = true ); } } return rtrim($PostBody); }
修正後のソース
赤い部分が、修正および追加した箇所です。
function mfe_More_Feed_Excerpt($PostBody) { global $post; if ( is_feed() and !get_option('rss_use_excerpt') ) { if(has_post_thumbnail($post->ID)) { $thumbnail = '<p>' . get_the_post_thumbnail($post->ID) . '</p>'; } $FeedSplitPattern = "/(<br \/>\s)?<span id=\"more-\d+\"><\/span>/"; $excerpts = preg_split($FeedSplitPattern, $PostBody, 2, PREG_SPLIT_NO_EMPTY); if ( count($excerpts) > 1 ) { $excerpts = balanceTags( $excerpts[0], $force = true ); $more_link = sprintf( ' <a href="%s">%s</a>', get_permalink(), '[続きを読む]' ); $PostBody = $excerpts . $more_link; } } return $thumbnail . rtrim($PostBody); }
注意したい点
プラグインが更新されると、修正内容がクリアされます。
プラグインを更新しないようにするか、更新した後に再度同じ修正をする必要があります。
コメント