【WordPress】Googleキャッシュと戦った話(Feed)

WordPressで書いた記事を普通のウェブサイトで新着一覧として出力する場合、一般的にRSSですよね。
jQuery Feedsというのを使わせて頂いてやってみました。
簡単に一覧出力出来ました。

使い方についてはwald-grun.bizさんのホームページを参考にさせて頂きました。

でも問題発生!問題発生!

googleのキャッシュが更新されるまで記事一覧も更新されないんですよ。
記事を新しく書いても、何時間も古い一覧だったんですよね。
そこでもう少し調べてみました。

そうしたら、分単位でキックする方法について書いてあるサイトがありました。好奇心の塊さん。

おお、これは!と思ったんですけど、WordPressのフィードって末尾の形が「rss」じゃないんですよね。

でもその対処も色々書かれていたのでこうしました。
※↓の記述より先にjQueryFeedsのライブラリ読み込んでます。

$(function(){
 $('.feed').feeds({
 feeds : {
 feed1: "http://サイトURL/information/feed/?news=newsinfo&" + "?" + (new Date()).getTime()
 },
 max:5,
 preprocess: function ( feed ) {
 var date = new Date(this.publishedDate);
 var dq = date.getMonth()+""+date.getDate()+""+date.getHours();
 var yy = [date.getFullYear()];if (yy < 2000) { yy += 1900; }
 var mm = [date.getMonth() + 1];if (mm < 10) {mm = "0" + mm;}
 var dd = [date.getDate()];if (dd < 10) {dd = "0" + dd;}
 this.publishedDate = yy +'/'+ mm +'/'+ dd;
 },
 entryTemplate : 'entryTmpl',
 });
});

フィードURLのお尻に、現在の時刻をくっつけることで、刻々とURLが変わるという仕組みです。アクセスする度にURLが異なるのでキャッシュのお世話にならない戦法。すばらしい。

キャッシュ大嫌い

正直、下の方(varの記述あたり)って詳しい人が見れば要らないのかもしれないけど、これで動いたのでこれ以上削るのが怖い。
今度暇があれば不要な部分が無いか探してみようと思います。

おまけ

上記の内容だとHTMLの方はこうです。

<ul>
<div class="feed"></div>
</ul>
<script type="text/html" id="entryTmpl">
<li><a href="<!=link!>"><!=title!></a></li>
</script>

これだとタイトルだけのリストだから日付も付けたい時はこう書くといいです。

<dl>
<div class="feed"></div>
</dl>
<script type="text/html" id="entryTmpl">
<dt><!=publishedDate!></dt><dd><a href="<!=link!>"><!=title!></a></dd>
</script>

この記事にコメントを残す