WordPress 升級到 2.0.2 之後 feed 的問題
西元 2006 年 3 月 19 日 早上 5 點 50 分最近 WordPress 己經釋出 2.0.2 版了,正好有空就把自己 blog (版本 1.5.2) 也升級到 2.0.2 版。升級的方法很簡單,請自行參考 WordPress Codex 的 Upgrading WordPress 技術文件。個人認為 WordPress 2.0.0 版最優秀的新功能就是 「Improved Post Preview」,它可以讓你在寫文章時就可以用你 blog 目前的 theme 預覽文章,而非舊版的只能看到純文字和圖片,相信有用過的人都知道其中的差異。
升級 WordPress 之後,我發現從使用 MovableType 至今一直沿用的三個 feed 網址 (index.rdf、index.xml 和 atom.xml) 都無法正確產生 feed,結果都變成下圖:

WordPress 本身沒有 index.rdf、index.xml 和 atom.xml 這三個專司產生 feed 的檔案,它是使用 wp-rdf.php、wp-rss2.php 和 wp-atom.php 等檔案來產生 feed。從 MovableType 改變使用 WordPress 為我的 blog 平台之後,我一直是用 Apache HTTP server 的 URL Rewriting Engine 把 index.rdf、index.xml 和 atom.xml 分別導到 wp-rdf.php、wp-rss2.php 和 wp-atom.php。
為什麼這三行程式碼在 WordPress 2.0.2 上會無法作用呢?我也不清楚。目前是用 Neerav Bhatt blog 「Fix Wordpress RSS feeds」 文章裡的方法來應急一下。方法很簡單,只要把 WordPress 的 feed 檔案 (譬如 wp-rdf.php) 複製成另一個檔案 (譬如 index.rdf),然後在 .htaccess 裡加上:
<files index.rdf>
ForceType application/x-httpd-php
</files>
其中的 ForceType 指令強制 Apache 把 index.rdf 當成 PHP 程式碼處理 (雖然它的副檔名不是 .php。如此一來,使用者或 feed reader 讀取 index.rdf 時就可以正確讀到 blog 的 feed 了。
後記:為什麼跳槽到 WordPress 之後,我還要保留 index.rdf、index.xml 和 atom.xml,並且讓它能正確產生 feed 呢?因為跳槽之前就已經有許多人訂閱我的 blog,確保這些檔案可以正常讀取就不用麻煩大家去更改訂閱的網址呀。 :p



