Wordpress 2.8.x – 2.9 でRSSの配信を more タグの前までにする方法
- 2009-11-04
- その他

Wordpress 2.8.x で、RSSの配信を <!- – more – -> タグの前までにする方法を書いておきます。Wordpress 2.5 あたりまでは、Wordpressの設定でRSSを「全文を表示」という設定にしても、全文配信ではなく、<!- – more – -> タグの前までの配信になってしまっていたようです。まさにこの配信方法をしたかったのですが、Wordpress 2.8.x では「全文を表示」にすると全文配信となり、本当に全文を表示されてしまいます。「抜粋のみを表示」という設定にすると、決められた文字数だけしか表示してくれません。
いろいろと検索した結果、何とか望んだ方法でRSSを配信することができました。Wordpress を使っている他の方も、これで困っている方もいるかもしれませんので、まとめておきます。
2.9でも同じ方法で可能です。
はじめに
Wordpress の設定は「全文を表示」にしておいてください。ファイルを書き換えるので、心配ならバックアップをとる様にしてください。
では、RSS2.0、Atom での配信方法を書き換えます。
RSS 2.0 の配信に関するファイルの書き換え
まず、RSS 2.0 からいきます。
/wp-includes/feed-rss2.php
このファイルを編集します。FTPなどで自分の Wordpress のフォルダからとってきます。feed-rss2.php を開きます。
7~9行目
(空白) header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true); $more = 1;
というコードがあるはずです。これを、下のように追加と書き換えを行います。8行目の「header~」は何もしません。
7~9行目
global $more; header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true); $more = 0;
ハイライトの部分のように、追加と編集をしてください。そして、
34行目
<?php while( have_posts()) : the_post(); ?>
これを下のようにします。
34行目
<?php while( have_posts()) : the_post(); $more = 0; ?>
この様に編集したらファイルをアップロードします。これで <!- – more – -> タグの前までの配信になっていると思います。RSSで表示される <!- – more – -> タグの部分の「(more…)/(続きを読む…)」というのが気に入らなければ、49行目の「the_content()」を編集し、「the_content(‘あいうえお’)」の「あいうえお」に適当な文字を入れれば良いです。なお、Wordpress 2.9 では「the_content()」ではなく、「the_content_feed(‘rss2′)」になっています。これを「the_content(‘あいうえお’)」にすればOKです。
Atom の配信に関するファイルの書き換え
これはほぼ RSS 2.0 と同じです。
/wp-includes/feed-atom.php
このファイルを書き換えます。feed-atom.php を開きます。
7~9行目
(空白) header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true); $more = 1;
というコードがあるはずです。これを、下のように追加と書き換えを行います。8行目の「header~」は何もしません。
7~9行目
global $more; header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true); $more = 0;
ハイライトの部分のように、追加と編集をしてください。そして、
30行目
<?php while( have_posts()) : the_post(); ?>
これを下のようにします。
30行目
<?php while( have_posts()) : the_post(); $more = 0; ?>
この様に編集したらファイルをアップロードします。実際の配信で表示される <!- – more – -> タグの部分の「(more…)/(続きを読む…)」というのが気に入らなければ、46行目の「the_content()」を編集し、「the_content(‘あいうえお’)」の「あいうえお」に適当な文字を入れれば良いです。なお、Wordpress 2.9 では「the_content()」ではなく、「the_content_feed(‘atom’)」になっています。これを「the_content(‘あいうえお’)」にすればOKです。
最後に
書き換えはうまくいったでしょうか。
RSSなどの表示に関してですが、GoogleリーダーなどのRSSリーダーは、すぐにあなたのサイトのRSSを更新してくれないかもしれません。その時に便利なのが Feed Validator です。RSSを確認できます。使ってみてください。
なお、編集してアップロードしたファイルは、Wordpress のバージョンが上がり、自動アップデートなどで Wordpress の純正のファイルに置き換わるかもしれません。今後どのような動作になるか分からないため、この点は何とも言えません。Wordpress を自動アップデートした時には確認してみた方が良いでしょう。僕の場合では Wordpress をアップデートするといつもオリジナルのものに替えられてしまっていました。
最後に参考にさせていただいたサイトを載せておきます。有り難うございました。







RSS配信に関して、こちらの記事を参考にさせていただきました。
ありがとうございます!
atomのところですが、30行目moreの前に「$」が抜けているようです。
こちら追加していただけると他の方もそのまま使えると思います。
ご確認ください。
お役に立てたようで何よりです。
ご指摘の通り、30行目の変更後のところに「$」が抜けていました。全く気付きませんでしたので助かりました。コメントしていただき有り難うございました!