WordPress 將其所有資訊片段 (包括文章、頁面、評論、部落格連結、 外掛設定等) 儲存在 MySQL 資料庫中。 雖然 WordPress 使用者可以透過網站後臺編輯控制以上資訊片段。 在一定程度上。
不過假設你的 WordPress 網站上有成百上千篇文章,而你需要進行全站範圍的改動, 這時從後臺逐條編輯就有點費時費力了,並且犯錯的機率也會提高。 最好的方法是進入 WordPress 的 MySQL 資料庫執行必要的查詢 (改動) 。 透過 MySQL 可以迅速地完成以上任務,為你節省更多時間。
下面要介紹的就是一些省時省力的 WordPress SQL 查詢方法。

事先備份
WordPress 資料庫裡儲存了你精心發表的每一篇文章,來自你的讀者的所有評論,以及你對自己網站進行的所有個性化設定。 因此,無論你對自己有多自信,都請記住一定要事先備份 WordPress 資料庫。 你可以透過備份外掛進行備份。

為所有文章和頁面新增自定義欄位
這段程式碼可以為 WordPress 資料庫內所有文章和頁面新增一個自定義欄位。 你需要做的就是把程式碼中的 『UniversalCutomField『替 換成你需要的文字,然後把 『MyValue『改成需要的值。
INSERT INTO wp_postmeta  (post_id, meta_key, meta_value)
SELECT ID AS post_id,  'UniversalCustomField'
AS meta_key 'MyValue AS  meta_value FROM wp_posts
WHERE ID NOT IN (SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField');

如果只需要為文章新增自定義欄位,可以使用下面這段程式碼:
INSERT INTO wp_postmeta  (post_id, meta_key, meta_value)
SELECT ID AS post_id,  'UniversalCustomField'
AS meta_key 'MyValue AS  meta_value
FROM  wp_posts WHERE ID NOT IN
(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')
`` AND post_type = 'post';

如果只需要為頁面新增自定義欄位,可以使用下面這段程式碼:
INSERT INTO wp_postmeta  (post_id, meta_key, meta_value)
SELECT ID AS post_id,  'UniversalCustomField'
AS meta_key 'MyValue AS  meta_value
FROM  wp_posts WHERE ID NOT IN
(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')
AND `post_type` = 'page';

刪除文章 meta 資料
當你安裝或刪除外掛時,系統透過文章 meta 標籤儲存資料。 外掛被刪除後,資料依然會存留在 post_meta 表中,當然這時你已經不再需要這些資料,完全可以刪除之。 記住在執行查詢前把程式碼裡的 『YourMetaKey『替 換成你需要的相應值。
DELETE FROM  wp_postmeta WHERE meta_key = 'YourMetaKey';

查詢無用標籤
如果你在 WordPress 資料庫裡執行查詢刪除舊文章,和之前刪除外掛時的情況一樣,文章所屬標籤會留在資料庫裡,並且還會出現在標籤列表/標籤 雲裡。 下面的查詢可以幫你找出無用的標籤。
SELECT * From wp_terms wt
INNER JOIN  wp_term_taxonomy wtt ON wt.term_id=wtt.term_id
WHERE wtt.taxonomy='post_tag'  AND wtt.count=0;

批次刪除垃圾評論
執行以下 SQL 命令:
DELETE FROM  wp_comments WHERE wp_comments.comment_approved = 'spam';

批次刪除所有未稽核評論
這個 SQL 查詢會刪除你的網站上所有未稽核評論,不影響已稽核評論。
DELETE FROM  wp_comments WHERE comment_approved = 0

禁止評論較早文章
指定comment_status的值為open 、 closed 或 registered_only。 此外還需要設定日期 (修改程式碼中的2010-01-01):
UPDATE wp_posts  SET comment_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish';

停用/啟用 trackback 與 pingback
指定comment_status的值為open 、 closed 或 registered_only
向所有使用者啟用 pingbacks/trackbacks:
UPDATE wp_posts  SET ping_status = 'open';
向所有使用者停用 pingbacks/trackbacks:
UPDATE wp_posts  SET ping_status = 'closed';

啟用/停用某一日期前的 Pingbacks & Trackbacks
指定ping_status的值為open 、 closed 或 registered_only。 此外還需要設定日期 (修改程式碼中的2010-01-01):
UPDATE wp_posts  SET ping_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish';

刪除特定 URL 的評論
當你發現很多垃圾評論都帶有相同的 URL 連結,可以利用下面的查詢一次性刪除這些評論。% 表示含有 「%」 符號內字串的所有 URL 都將被刪除。
DELETE from  wp_comments WHERE comment_author_url LIKE "%nastyspamurl%"  ;

識別並刪除 「X」 天前的文章
查詢 「X」 天前的所有文章 (注意把 X 替換成相應數值):
SELECT * FROM `wp_posts`
WHERE `post_type`  = 'post'
AND DATEDIFF(NOW(),  `post_date`) > X

刪除 「X」 天前的所有文章:
DELETE FROM `wp_posts`
WHERE `post_type`  = 'post'
AND DATEDIFF(NOW(),  `post_date`) > X

刪除不需要的短程式碼
當你決定不再使用短程式碼時,它們不會自動消失。你可以用一個簡單的 SQL 查詢命令刪除所有不需要的短程式碼。 把 「tweet」 替 換成相應短程式碼名稱:
UPDATE wp_post  SET post_content = replace(post_content, '[tweet]', '' )  ;

將文章轉為頁面
依然只要透過 PHPMyAdmin 執行一個 SQL 查詢就可以搞定:
UPDATE wp_posts  SET post_type = 'page' WHERE post_type =  'post'
將頁面轉換成文章:
UPDATE wp_posts  SET post_type = 'post' WHERE post_type =  'page'

更改所有文章上的作者屬性
首先透過下面的 SQL 命令檢索作者的 ID:
SELECT ID,  display_name FROM wp_users;
成功獲取該作者的新舊 ID 後,插入以下命令,記住用新作者 ID 替換 NEW_AUTHOR_ID,舊作者 ID 替換OLD_AUTHOR_ID 。
UPDATE wp_posts  SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;

批次刪除文章修訂歷史
文章修訂歷史儲存可以很實用,也可以很讓人煩惱。 你可以手動刪除修訂歷史,也可以利用 SQL 查詢給自己節省時間。
DELETE FROM  wp_posts WHERE post_type = "revision";

停用/啟用所有 WordPress 外掛
啟用某個外掛後發現無法登入 WordPress 管理面板了,試試下面的查詢命令吧,它會立即停用所有外掛,讓你重新登入。
UPDATE wp_options  SET option_value = 'a:0:{}' WHERE option_name  = 'active_plugins';

更改 WordPress 網站的目標 URL
把 WordPress 部落格 (模板檔案、上傳內容& 資料庫) 從一臺伺服器移到另一臺伺服器後,接下來你需要告訴 WordPress 你的新部落格 地址。
使用以下命令時,注意將 http://www.old-site.com 換成你的原 URL,http://www.new-site.com 換成新 URL 地址。
首先:
UPDATE wp_options
SET option_value = replace(option_value, 'http://www.old-site.com', 'http://www.new-site.com')
WHERE option_name  = 'home' OR option_name = 'siteurl';

然後利用下面的命令更改 wp_posts 裡的 URL:
UPDATE wp_posts  SET guid = replace(guid, 'http://www.old-site.com','http://www.new-site.com);
最後,搜尋文章內容以確保新 URL 連結與原連結沒有弄混:
UPDATE wp_posts
SET post_content = replace(post_content, ' http://www.ancien-site.com ', ' http://www.nouveau-site.com ');

更改預設使用者名稱 Admin
把其中的YourNewUsername替換成新使用者名稱。
UPDATE wp_users  SET user_login = 'YourNewUsername' WHERE user_login  = 'Admin';

手動重置 WordPress 密碼
如果你是你的 WordPress 網站上的唯一作者,並且你沒有修改預設使用者名稱, 這時你可以用下面的 SQL 查詢來重置密碼 (把其中的 PASSWORD 換成新密碼):
UPDATE `WordPress`.`wp_users`  SET `user_pass` = MD5('PASSWORD')
WHERE `wp_users`.`user_login`  =`admin` LIMIT 1;

搜尋並替換文章內容
OriginalText換成被替換內容,ReplacedText換成目 標內容:
UPDATE wp_posts SET `post_content`
 = REPLACE (`post_content`,
 'OriginalText',
'ReplacedText');

更改圖片 URL
下面的 SQL 命令可以幫你修改圖片路徑:
UPDATE wp_posts
SET post_content  = REPLACE (post_content, 'src=」http://www.myoldurl.com',
'src=」http://www.mynewurl.com');