熟悉 WordPress 的人都知道 WordPress 是由 MySQL 數據庫驅動的。 MySQL 是一個免費的關係數據庫管理系統,大多數的主機託管服務商都有提供。 WordPress 所有數據如文章、評論、分類、設置等信息都是保存在 MySQl 數據庫中。如果你想要了解更多關於 MySQL 的信息,可以訪問 WordPress 的數據庫模式。

舉一個例子,如果你想在 WordPress 後台修改一些信息,查找每一個記錄不僅耗時而且還很可能出錯。而在 WordPress 數據庫中通過簡單地執行一個 SQL 查詢就可以非常快速高效地做必要的修改。 下面就列出幾個非常實用的 SQL 查詢,對你實用 WordPress 將有非常大的幫助。

備份 WordPress 數據庫

在執行任何修改之前,請先確保對數據庫備份。要養成在做任何大的修改之前總是先備份下數據庫的好習慣。這樣一來,即使出現了什麼錯誤,你還可以還原。
你可以下載 WP-DB-Backup 或 WP-DBManager 插件,通過 WordPress 管理面板來備份你的數據庫。或者你也可以通過 phpMyAdmin 手動完成對你數據庫備份。

如果你決定手動完成數據庫備份,按照下面的操作步驟:

1 、登錄到 phpMyAdmin

2 、選擇 WordPress 數據庫。

3 、點擊導航頂部的輸出

4 、選擇你需要備份的表格,或者選擇所有表格對整個數據庫進行備份。

5 、選擇 SQL 將輸出的文件存為 .sql 的擴展名。

6 、勾選"另存為文件" 複選框。

7 、選擇文件壓縮類型,選擇 gzipped 將數據庫壓縮。

8 、最後點擊 「執行」 將會出現一個下載窗口提示你保存備份文件。

十三個 WordPress SQL 查詢語句

執行下面這些查詢最方便的方法是使用 phpMyAdmin 。 phpMyAdmin 是最常見的數據庫編輯和查找工具。幾乎所有的主機服務商的控制面板都有提供這個工具。或者你也可以使用 WordPress 插件 WordPress SQL Executioner 來執行 SQL 查詢。

使用 phpMyAdmin 的話,其步驟如下:

  1. 登錄 phpMyAdmin 面板選擇 WordPress 數據庫。
  2. 點擊 SQL 標籤,這樣你就進入了一個 SQL 查詢框的頁面。

看到如下圖所示的 SQL 查詢框之後,你就可以在裏執行 SQL 查詢。

注意: 所有的查詢都是直接的 SQL 查詢,並假設標準的表格前綴是'wp_' ,如果你使用其他的表格前綴,請相應地做修改。

1 變更 Siteurl & Homeurl

WordPress 將站點 URL 的絕對路徑和本地 URL 保存在數據庫中。因此,如果你將 WordPress 站點從本地主機轉到你的服務器,你的站點不會加載網絡,因為你的絕對路徑 URL 仍然指向你的本地主機。你需要改變站點 URL 和本地 URL,網站才能運作。

解決辦法:

以下為引用的內容:
UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com') WHERE option_name = 'home' OR option_name = 'siteurl';

2 變更 GUID

當你將博客從本地主機轉移到你的服務器之後,或者從一個域名轉到另一個新的域名,你需要在 wp_posts 表格修復 GUID 字段的 URL 。因為如果輸入錯誤,GUID 可以將文章或者頁面轉到正確的文章絕對路徑。

解決方案:

以下為引用的內容:
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com');

3 更改內容中的 URL

WordPress 保存在數據庫中的 URL 鏈接使用絕對路徑而非相對路徑。在每個發佈文章的記錄中,它保存的是舊的 URL 引用舊的資源。因此,如果你需要將這些 URL 轉的新的域名位置,就可以使用下面的方法。

解決方法:

以下為引用的內容:
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com');

4 只改變圖像路徑

如果你使用亞馬遜雲計算服務 CloudFront 作為內容交付網絡 (CDN) 從服務器端卸載圖片,在創建完 CNAME 記錄後,你可以使用下面的查詢語句來改變 WordPress 中的圖形路徑以下載所有的圖形。

解決方法:

以下為引用的內容:
UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="http://www.oldsiteurl.com',%20'src="http://yourcdn.newsiteurl.com');

你還需要用下面的查詢更新圖片附件的 GUID:

以下為引用的內容:
UPDATE wp_posts SET  guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://yourcdn.newsiteurl.com') WHERE post_type = 'attachment';

5 更新文章 Meta 標籤

更新文章 Meta 標籤的方法與更新文章內容中 URL 方法幾乎一致。如果你給每篇文章保存了額外的 URL 數據,你可以使用下面的查詢來更改。

解決辦法

以下為引用的內容:
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com');

§

6 更改默認的"Admin" 用户名

安裝 WordPress 後,會默認創建一個 「admin」 的賬户名。這一點只要有使用 WordPress 的用户都知道。不過,這可能會帶來一個安全問題,因為黑客很容易侵入並控制你的 WordPress 管理面板。如果你可以對這個默認的 「Admin」 用户名進行修改將會提高 WordPress 管理面板的安全性。

解決方法:

以下為引用的內容:
UPDATE wp_users SET user_login = 'Your New Username' WHERE user_login = 'Admin';

7 重設密碼

想重設 WordPress 的密碼,但是卻由於各種各樣的原因卻無法使用重設密碼這個選項?

解決方法:

以下為引用的內容:
UPDATE wp_users SET user_pass = MD5( 'new_password' ) WHERE user_login = 'your-username';

8 將所有的 B 作者的文章歸入 A 作者

如果你想將所有的 B 作者下的文章轉移到 A 作者名下,一篇一
篇移動起來將會非常耗時。使用下面的 SQL 查詢,你可以輕鬆地訪問所有的記錄將 B 作者的文章轉到 A 作者下。 首先你需要進入 WordPress 管理面板的作者和用户頁面獲得作者的 ID 。點擊作者名查看個人資料,在地址欄,查找"user_id"。得到的就是我們需要的作者 ID 信息。

解決方法:

以下為引用的內容:
UPDATE wp_posts SET post_author = 'new-author-id' WHERE post_author = 'old-author-id';

9 刪除草稿

在 WordPress 中編輯一篇文章時,系統會保存多份修訂的副本。由於過多的修訂記錄會加重數據庫的負擔造成了資源的浪費。並且,隨着時間的推移,當你的文章條目達到上千條是,你的數據庫就會變得越來越龐大。這樣就會增加了循環迭代、數據檢索影響頁面的加載時間。

解決方法:

以下為引用的內容:
DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'

注意: 注意,此方法將刪除所有的文章的所有修訂版,包括相關的 meta 數據。

10 刪除文章 Meta 標籤

在 WordPress 的使用中,安裝或刪除插件是非常經常的。有些插件利用 post meta 來存儲插件相關的數據。就算你刪除了這些插件,這些不必要的數據仍然保留在 post_meta 表格裏。 你可以使用下面的語句來清除不需要的 post meta 值。這將有助於加快你的數據庫運行速度,減小數據。

解決方案:

以下為引用的內容:
DELETE FROM wp_postmeta WHERE meta_key = 'your-meta-key';

11 導出所有的評論郵件地址

經過一點時間,你的博客可能收到了非常多評論。這些評論裏包含了評論者留下的郵件地址。你可以取回這些郵件地址列入你的郵件列表中。.

解決方法:

以下為引用的內容:
SELECT DISTINCT comment_author_email FROM wp_comments;

獲得結果後,在查詢結果的操作中,選擇導出導出 所有的郵件。

12 刪除所有的 Pingback

熱門文章會獲得非常多的 pingback 。這樣,你的數據庫就變大,為了減小數據庫,你可以嘗試將所有這些 pingbacks 刪除。

解決方法:

以下為引用的內容:
DELETE FROM wp_comments WHERE comment_type = 'pingback';

13 刪除所有的垃圾評論

如果碰到非常多垃圾評論,一個個刪除的話講會非常頭疼。而是用下面的 SQL 查詢,就算你要刪除五百多條垃圾評論也變得輕而易舉了。

解決方法:

以下為引用的內容:DELETE FROM wp_comments WHERE comment_approved = 'spam';

0 = Comment Awaiting Moderation

1 = Approved Comment

spam = Comment marked as Spam

14 確定未使用的標籤

在 WordPress 數據庫中,如果你使用一個查詢語句手動來刪除舊的文章,舊的標籤卻仍然會保留並在你的標籤雲/列表中出現。你可以使用下面的方法識別未使用的標籤並將它刪除。

解決方法:

以下為引用的內容:
SELECT * FROM wp_terms wt
INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id
INNER JOIN wp_term_relationships wtr ON wtr.term_taxonomy_id=wtt.term_taxonomy_id
LEFT JOIN wp_posts wp ON wp.ID=wtr.object_id
WHERE taxonomy='post_tag'
AND ID IS null
AND NOT EXISTS(SELECT * From wp_terms wt2
INNER JOIN wp_term_taxonomy wtt2 ON wt2.term_id=wtt2.term_id WHERE wtt2.parent=wt.term_id) ORDER BY name;

開始使用查詢吧!

如果你要對 WordPress 網站做一些維護工作, 上面這些 SQL 查詢語句將會對你非常有幫助,提高你的工作效率。