跳船WP: rss的處理

跳船後,第一次衝擊而來的就是RSS的設定。

原來在MT上用的是 index.rdf 和 index.xml ,換成 WP 後得使用permalink (http://blog.serv.idv.tw/feed/) ,本來這也還好,通告一下大家把 rss 改一改就好了,不過呢,San Wang 在 “跳船跳船!! 網站系統更新” 的迴響裡提了個很誘人的法子: 用 mod_rewrite 把 index.rdf 導向 http://blog.serv.idv.tw/feed/,這麼簡單的法子怎麼沒想到呢?

本來還擔心WP如果更改 permalink 的格式之後會把 .htaccess 整個給覆寫掉,一試之下,不會耶,只會改對應的位置,嗯嗯,還真聰明。

本來這樣就沒事了,結果 peko 再下一城,提到他使用 feedburner 的經驗來湊和 WP 跟 Meerkat 的經驗,正好我要更改 Oui-blog 上設定的資料,裡面也有提到 :

站方強烈推薦使用FeedBurner升級貴站RSS feed,且經現況顯示,經過FeedBurner升級的feed可大幅減低亂碼出現的機會;且讀取速度較快,優點多多,請多加利用。
註:WordPress版的RSS進聯播後幾乎都是亂碼,請儘量使用上述服務將貴站的RSS燒一下

既然如此,那就來個二合一吧。

步驟零:修改你的 wp-rss2.php

wp-rss2.php 裡有一個小小的錯誤,會使得rss裡面出現中文的日期 (如 四月19日, 2005)。這個問題在 zonble 的 blog 裡面就有提到,解法也很簡單:

解決的方法是要改一下 wp-rss2.php 這個檔案,找一下第 36 行,把:

<pubDate><?php echo mysql2date(‘D, d M Y H:i:s +0000’, get_the_time(‘Y-m-d H:i:s’)); ?></pubDate>

改成

<pubDate><?php echo mysql2date(‘D, d M Y H:i:s +0000’, get_the_time(‘Y-m-d H:i:s’), 0); ?></pubDate>

順便一下,如果你是用 WP 1.5 release,尤其是 zonble 在 中文 WordPress專案 裡 釋出的 wp1.5zhTW.tgz,裡面 Category(分類) 會用到的 wp_list_cats() template tag 有問題,請上wordpress網站下載 wp-includes/template-functions-category.php 新的版本,或是詳見這裡的說明。

步驟一:申請一個新的 FeedBurner服務

FeedBurner是一個蠻強大的 rss/atom 轉換/加值服務,有興趣的人可以看看這裡的說明。我們主要要使用的是他的轉換 rss 及提高 rss reader的相容性功能。首先,在剛才提到的首頁裡輸入你的 blog 的 rss 連結 URL,為了要搭配後面的rewrite,建議不要使用 WP 所提供的 permalink(如 http://blog.serv.idv.tw/feed/ ) 而使用其真正的網址:(如 http://blog.serv.idv.tw/index.php?&feed=feed)。

申請 FeedBurner: step 1

然後,到下一個頁面,點選 SmartFeed 跟 Convert Format Burner。
申請 FeedBurner: step 2
申請 FeedBurner: step 3

在最下方,輸入你想要的 rss 位址。

申請 FeedBurner: step 4

按下 Next 到下一頁後,輸入註冊的帳號資料,這樣以後才能回來修改。

申請 FeedBurner: step 5

送出後就大功告成了。

步驟二:修改你的 rewrite 設定

打開你的 .htaccess 設定檔(如果你有設定 WP 的 “固定網址”,那麼這個檔應該已經存在了),在 WP 的 RewriteRule (就是在 # BEGIN WordPress) 之前 加上下面幾行:

注意! 不要直接照 copy & paste ,要記得把 rss 位址改成剛才自己取的:

# Redirection of rss
# include FeedBurner processed rss2
<IfModule mod_rewrite.c>
RewriteRule ^index.(rdf|rss)$ http://feeds.feedburner.com/blog_serv [QSA,L]
RewriteRule ^index.xml$ http://feeds.feedburner.com/blog_serv [QSA,L]
RewriteRule ^feed/$ http://feeds.feedburner.com/blog_serv [QSA,L]
</IfModule>

然後…. 應該就大功告成了吧!!

現在,試試看使用 [blog_url]/feed/ 打開你的站的 RSS,看看網址列,是不是被轉向到 FeedBurner上你所設定的網址呢? 而原來rss裡的:

<!-- generator="wordpress/1.5" -->

是不是也消失了呢,是的話,那表示你設定正確了。

再用 [blog_url]/index.rdf 試試看,是不是也轉向成功了呢?

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

%d 位部落客按了讚: