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);
}
注意したい点
プラグインが更新されると、修正内容がクリアされます。
プラグインを更新しないようにするか、更新した後に再度同じ修正をする必要があります。



コメント