熟悉 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 的話,其步驟如下:
- 登入 phpMyAdmin 面板選擇 WordPress 資料庫。
- 點選 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 查詢語句將會對你非常有幫助,提高你的工作效率。