今天發文章時,驚奇的發現文章的ID竟然已經到達了19了。鑒于我以前折騰Wordpress的經驗,我知道這是Wordpress的“自動保存和文章修訂功能”在作怪。但是,該怎么才能關閉Wordpress的這個功能呢?!還是問“谷老師”吧。
經過“谷老師”的指點,找到了解決辦法。其實很簡單,只需在wp-config.php中加入以下代碼即可:
復制代碼
代碼如下:
根據你的需要將上述三行代碼放到wp-config.php中,如果你不知道放在文件什么位置,這個文件中已經有很多define開頭的代碼,和他們放在一起就可以。
很簡單對吧,就像這兩個功能都是累贅,毫無用處,如果你只想知道這些,寫這篇文章就毫無意義了。甚至你可能還不是百分之百的清楚自動保存和文章修訂到底有什么區別,到底誰是讓數據庫數據膨脹的罪魁禍首。
那么我們繼續看一看這兩個東西。
自動保存(Auto-Save)
這是一個非常實用的功能,當你編輯文章的時候,WordPress每隔60秒自動保存你輸入的內容,防止因為電腦掛機或者斷電而丟失辛苦勞動的成果。這個功能不同于自動修訂,你完全不用擔心它會讓你的數據庫數據膨脹,因為它只會創建一條記錄,每隔60秒更新一次,當文章發布后,這條記錄的post_status會從draft變成publish,沒有一點浪費的地方。
唯一給你帶來麻煩的可能是保存間隔太短,服務器難受,寫文章可能有間歇性卡的感覺,那么你可以將時間設置的長一點。
define('AUTOSAVE_INTERVAL', 120 ); // 設置自動保存間隔,單位是秒,默認60
如果你傾向于用Word編輯,之后拷貝到WordPress的編輯器中,你也可以完全禁用自動保存功能,在主題的functions.php中加上如下代碼就可以
復制代碼
代碼如下:
禁用后的副作用:預覽功能不可用,必須保存為草稿才能預覽
如果服務器還不錯,這個自動保存功能基本不影響什么,Sola使用了60秒保存一次的自動保存,喜歡用WP的編輯器邊寫邊預覽,經常誤點WP菜單(現在的菜單鼠標滑過就會彈出子菜單,很容易點錯),要是沒有60秒一次的自動保存,真不知道要浪費多少時間重新編輯了。
文章修訂(Post Revisions)
在編輯文章時,如果文章標題、內容或者摘要等字段發生變化,WordPress就會將當前版本保存為一個修訂版,方便你想退回到之前的版本,這有點像svn的工作方式。隨之而來的問題是,數據庫會被修訂版撐的很大,加之有自動保存的功能,讓這個修訂功能多少顯得有點累贅。
我們可以控制修訂版的數量,例如一篇文章最多保存3個修訂版
define('WP_POST_REVISIONS', 3);
這樣,每創建一篇文章,數據庫中會有1條auto-save+最多3條revision。
或者完全禁用
define('WP_POST_REVISIONS', false );
可以通過運行一條SQL語句徹底刪除修訂版以及與之相關的meta信息
復制代碼
代碼如下:
關于自動草稿
自動保存產生的記錄叫做草稿,還有一種記錄叫做自動草稿,自動草稿在你點擊寫文章時就會自動創建。
如果你點擊寫文章后:
輸入內容,自動保存生效
手動將文章保存為草稿
發布文章
自動草稿記錄會被轉換成草稿或者文章,從而不產生垃圾數據。
如果你點擊寫文章,什么也沒寫就關閉了,就產生了一條自動草稿垃圾記錄,修改這個問題需要更改源代碼,如果感興趣可以google一下,但如果可以養成良好的寫文章習慣,自動草稿根本不是問題,WordPress也有一些回收機制,例如每次新建文章時會自動清除7天以前的自動草稿。
用插件管理文章不同版本
有一些插件可以幫助我們清理數據庫,管理文章的各個版本。
Wp Cleaner
使用時注意不要誤刪草稿,有時候我們會將沒寫完的文章保存為糟糕,刪了就慘了。
Revision Control
如果用短小精悍來形容Wp Cleaner,那么Revision Control就是五臟俱全了,功能強大,界面相對也復雜些。