過去 10 年來,MySQL 數據庫以令人難以置信的速度在網絡上流行起來。每一個 WordPress 博客都由 MySQL 數據庫驅動,存儲博客日誌、設置、評論等內容。

面對 WordPress,雖然插件或編碼技巧可以解決一些問題、完成某些任務,但是有時除了通過 phpMyAdmin 或 SSH 執行 SQL 語句外,你別無選擇。下面讓我們來看看 WordPress 實用 SQL 語句集錦。本系列文章的每個篇章都嚴格按照提出問題、解決問題、解釋説明的思路撰寫,以使讀者真正瞭解掌握解決問題的方法,達到舉一反三的效果。

1 、創建數據庫備份

useful-WordPress-sql-hacks-01

問題。儘管本文論及的所有語句已經過測試,我們仍然應當先備份 MySQL 數據庫,再嘗試執行這些語句。

方案。要手工創建一個 WordPress 數據庫備份,請按照下列步驟進行:

1 、登錄 phpMyAdmin,選擇 WordPress 數據庫。

2 、接着在橫向列示的菜單上點擊 「導出」 按鈕。

3 、選擇壓縮方法 (我個人習慣使用 gzip),然後點擊 「執行」 按鈕。

4 、瀏覽器會提示是否需要下載備份文件。選擇 「是」,然後將該文件儲存在硬盤驅動器上。

解釋。需要注意的是,創建 WordPress 數據庫備份的任務,可以通過 WP-DB-Backup 插件更容易地實現。每一個 WordPress 用户都應該安裝此插件,並定期進行數據備份。 (譯註:此提示雖顯絮叨卻是博客作者都應遵循的準則。因為主題或插件沒了都可以再安裝,但數據沒了那麼所有過往的努力都將付諸東流。)

2 、批量刪除日誌修訂記錄

useful-WordPress-sql-hacks-02

問題。修訂版本是 WordPress 2.6 引入的功能,該功能雖然在某些場景下比較有用,但也增加了 MySQL 數據庫的大小。儘管我們可以手動刪除文章修訂版本,但這是非常漫長而枯燥的工作。

方案。這個問題的解決方法很簡單:我們通過執行簡單的 SQL 查詢來批量刪除日誌修訂記錄。如果你有很多的日誌,其結果可能令人難以置信:數據庫的大小將減少一半!

登錄 phpMyAdmin,選擇 WordPress 數據庫。

點擊 「SQL」 按鈕。將以下代碼粘貼到 SQL 命令窗口:

DELETE FROM wp_posts WHERE post_type = "revision";

大功告成。最終節省的數據庫空間大小取決於博客文章數的多少。

解釋。 wp_posts 表有一個名為 post_type 的字段。此字段有幾個取值,如 「post」 、 「page」 或 「revision」 。想要去除文章修訂版本,只需運行一個命令以刪除 wp_posts 表中,post_type 字段等於 「revision」 的記錄。

接下來我們分析關於批量刪除待審核評論和變更日誌歸屬的 SQL 命令。

3 、瞬間刪除 5000 條垃圾評論

useful-WordPress-sql-hacks-03

問題。真人真事:我的一個朋友最近搭建了自己的博客,並開始在網上四處推廣。經過幾個星期的緊張工作,他休了幾天假沒有上網。

回到家裏他看了看博客,結果看到... 超過 5000 條待審核評論!當然,其中大多數是垃圾評論,本來他打算逐一檢驗,以確保不會刪掉一般讀者的有效評論。

方案。令人高興的是,友人把他的垃圾留言問題告訴了我。在我向他展示下面這條有用的 SQL 語句前,他已經花了 45 分鐘手工刪除垃圾評論。

登錄 phpMyAdmin,選擇 WordPress 數據庫。

點擊 「SQL」 按鈕。將以下代碼粘貼到 SQL 命令窗口:

DELETE from wp_comments WHERE comment_approved = '0';

向垃圾評論説再見!享受未受垃圾評論侵擾的數據庫吧!

解釋。 wp_comments 表包含一個名為 comment_approved 的字段,取布爾值 (1 或 0) 。通過審核的評論該值為 1,待審核的評論取 0 值。通過運行上面的命令,我們刪除了全部待審核評論。

謹慎行事。如果你有一大堆垃圾留言需要刪除,這種解決方案是非常有用的,但也可能刪掉未經審核的有效評論。因此,如果你還沒用上 Akismet,馬上安裝它以阻止垃圾評論的騷擾。