處理 WordPress 文章版本

by 張家振 on Dec 24, 2008 , 3 comments

最後更新日期:2009-08-11

WordPress 2.8 之後,又因為 Autosave 的功能無法被以下插件控制 (Autosave 雖然貼心,但是骨子裡還是一直在資料庫中寫入許多版本。);於是乎,找來了不在 WP Plugin Directory 中的這隻 Disable Revisions and Autosave 來同時關閉文章版本與自動存檔。

自從 WordPress 更新到 2.6 版後,就加入了 Post Revision 的功能,用來記錄每編寫的版本存檔,是種方便作者校對、回溯的方便功能;但是其造成的資料庫痴肥、搜尋外掛等問題令人頭大。

因此我在 WP 2.6 時代使用 No Revision 這隻外掛來解決這個問題!然而更新到 WP 2.7 後,原本以為這隻許久沒更新的外掛能正常運作,沒想到它在 Pages 的部份出包了;原因在於 WP 2.7 對資料庫的結構有稍微變動,導致這個外掛失效。因為等不及這隻外掛作者更新,所以另外找了這隻號稱可以支援到 WP 2.8 的 Revision Control

安裝完之後不但可以在後台設定預設關閉 Posts 以及 Pages 的 Revision 功能,或是限制只能有 2 份版本來減找資料庫肥度,更可以在每篇文章、頁面中多出一個欄位來控制是否使用 Revision 功能,目前用起來還不錯。

已經遭受到 Revision 波及資料庫的可以參考用 haseo 在 dogg3h 部落格中的這篇討論 Post Revision 功能的文章中的執行 SQL Command 的方法,把資料庫裡面的屎給清乾淨......

在伺服器找到類似 phpMyAdmin 這樣的管理 SQL 資料庫介面中,分批執行這三個指令:

DELETE FROM wp_postmeta WHERE post_id IN (SELECT id FROM wp_posts WHERE post_type = 'revision');

DELETE FROM wp_term_relationships WHERE object_id IN (SELECT id FROM wp_posts WHERE post_type='revision');

DELETE FROM wp_posts WHERE post_type='revision';

上面的 wp_postmetawp_postswp_term_relationships 是預設於 wp-config.php 的名稱,如果您有手動修改記得對照改過名稱後再執行指令。

  • 我也下載啟用了此插件,可是卻出現了錯誤,在『設置』選項裏並沒有出現【Revisions】的設置選項,並且在外掛頁面此插件處發現了《Revisions》的連結(通常只有【停用│編輯】兩個連結),點下去之後卻出現了一個『無法載入 Revision Control』的錯誤訊息。

    跑去插件作者網站,也看到有人反應這個錯誤,作者說個錯誤他會擇日更新。

    • @Carrie

      我是先進 phpMyAdmin 把文章中所提到的渣渣欄位刪除後
      再安裝這個插件的,目前使用上還算正常。
      給您參考!謝謝!

  • @張家振,

    我也有照這個方法刪除多餘的欄位,可是還是一樣呢……
    現在只有等插件作者更新囉~