WordPressのRSSが更新されないッ!解決方法は?

WordPressのRSSが更新されないッ!解決方法は?wordpress
この記事は約4分で読めます。

こんにちは!
Naoya(@lisbiz_info)です。

画面とにらめっこして、
格闘して、
本当に疲れました。

なぜかというと、、、

投稿をしても、WordPressのRSSが更新されてないッ!

今日も記事を更新した!

RSS届いているか確認しよ~…

更新がされていないッ!!

なぜだ!?

一昨日からこう思ってたわけです。
そして昨日やっと解決方法を見つけたので、
今後の備忘録として残しておこうと思います(*_*)

 

RSSが更新されない原因は結局なんだったの?

原因は二つありました。

まず一つ目はキャッシュの問題。
Wordpressは独自のキャッシュのため、更新がされないことがあるそう。

そして二つ目はfunctions.phpで空白や空行があり、そもそもRSSが配信されない。

 

ブログ初心者なのに勘弁して…

と思いましたが、
解決しなければ投稿をしても更新通知がされずに、
アクセス数にも影響があるので、
調べまくりました。

RSSのキャッシュ問題をを解決する方法

まず一つ目のキャッシュの問題で、更新がされないのを解決。

rss.phpを編集し、キャッシュ保持時間(更新時間)を変更する

サイトURL/wp-includes/rss.php

var $MAX_AGE	= 43200 // when are files stale, default twelve hours

初期設定では43200秒(12時間)になっているので、これを1800(30分)に変更します。
※あまり短くするとサーバーの負荷が大きくなるので、注意です。

 

feed.phpを編集し、キャッシュ保持時間(更新時間)を変更する

サイトURL/wp-includes/feed.php

wp_feed_cache_transient_lifetime’, 12 * HOUR_IN_SECONDS, $url

こう表示されているのを

wp_feed_cache_transient_lifetime’, 1800, $url

上記に変更しました。

 

初期設定ではキャッシュの保持時間は12時間になっていますが、
1800秒(30分)に変更しました。
※rss.phpと同様にあまり短くするとサーバーの負荷が大きくなるので、注意です。

 

これで一つ目のキャッシュの問題は解決しました。

変更した後、確認してみますが、いつまでたってもRSSは更新&配信されていませんでした…

まあ原因が二つあるのであとから思えば当然だったのですが…

なので、ほかの解決方法を試すことにしました。

 

大正義Google先生で調べてみると
htmlの上部に空白があるとRSSが配信されないと書いてあったので、
こちらも試してみることに。

 

functions.phpで空白や空行があり、配信されていなかった

functions.phpの不適切な箇所を修正

functions.phpに<?php ?>タグの外側に空白や空行が含まれると、
出力されるhtmlの上部に空白や空行が入ってしまい、結局RSSが配信されなくなる模様。

 

RSSの<?xml宣言より前に空行が挟まれる場合は、
phpの2行目にob_end_clean();を挿入することで解決するようです。

<?php
ob_end_clean();

・サイトURL/wp-includes/feed-rss2.php
・サイトURL/wp-includes/feed-rss2-comments.php

 

これで僕の場合はちゃんと配信されるようになりました。
ただ、ほかにもいろいろと原因があるみたいです。

マジでパソコン見すぎて、解決した後

いつの間にか寝落ちしてた。

しかし、運営していく以上はしょうがないですね(笑)
PHP,JavaScript,CSSをこれからもっと勉強していこうと思います。

 

みなさんもRSSが配信されないと思ったときは、

紹介した二つの方法を試してみてくださいね(^^)/

 

 

最後までお読みいただきありがとうございました。

ではまた。

コメント

タイトルとURLをコピーしました