WordPressのRSS2配信で全文配信してくれない件
WordPressの設定画面にはRSS配信の際に全文を配信するか、冒頭の一部のみ配信するかを選ぶ項目があります。しかし、これ、RSS0.92モードとRDFモードは設定が反映されるものの、RSS2.0モードとatomモードは設定が反映されません。なぜか、WordPress2.2から現在の2.8まで続く伝統的な仕様みたいです。不便。
というわけで、いろいろ調べて、RSS2.0で全文が配信されるように修正しました。wp-include/feed-rss2.phpをいじります。descriptionにタグを含めた全文を出すようにするため、既存のdescriptionを生成する部分(赤字のところ)は削除します。青文字の部分が追記になります。2のところで、HTMLタグごと出力するかを決めます。0でタグを無効にします。
<?php if (get_option('rss_use_excerpt')) : ?>
<description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
<?php else : ?>
<description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
<?php if ( strlen( $post->post_content ) > 0 ) : ?>
<content:encoded><![CDATA[<?php the_content('', 0, '', get_option('rss_excerpt_length'), 2) ?>]]></content:encoded>
<?php else : ?>
<content:encoded><![CDATA[<?php the_excerpt_rss() ?>]]></content:encoded>
<?php endif; ?>
<?php endif; ?>
書き換えが終わって、リロード(注:Ctrl+F5などの強制リロードが必要)すると、全文で表示されるようになります。
atom出力についても、「the_content(”, 0, ”)」となっている部分を「the_content(”, 0, ”, get_option(‘rss_excerpt_length’), 2)」とすることで全文表示してくれるようになります。
私の管理している分では、このブログと、びぎねっとITニュース、VTJのサイトの仮想化通信で改良を行いました。これですっきりだ!

