大多數使用 WordPress 搭建的網站,其後台都是 MySQL 資料庫,經常我們需要定製 WordPress 的功能,這裡我們列表 10 個最有用的 WordPress 的資料庫查詢,你需要一個資料庫的管理工具,例如 phpMyAdmin 或者 Navicat 等來執行這些 SQL 陳述式。
1. 將所有檔案的作者改為另外一個使用者
在修改之前,你先要知道兩個不同使用者的 ID,你可以在 WP 背景 Author & User 頁面中找到這個 ID,或者在查看使用者資訊時點擊使用者名稱的連結,地址欄中出現的 user_id 對應的值就是使用者ID,然後運行以下命令進行修改:
UPDATE wp_posts SET post_author = 'new-author-id' WHERE post_author = 'old-author-id';
2. 修改預設管理員 admin 的名稱
WP 預設安裝會建立一個名為 admin 的管理員帳號,你可以修改這個帳號的名稱:
UPDATE wp_users SET user_login = 'Your New Username' WHERE user_login = 'Admin';
3. 刪除修訂版 Revision
文章修訂版浪費了大量的儲存資源,當你有數以千計的文章時,這個數值更加驚人,這會影響程式執行的效能、資料擷取,降低頁面載入時間,解決的辦法就是刪除這些無用的修訂版資訊:
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'
4. 更改 GUID
在進行部落格移植時,你需要修複 wp_posts 表中的 URL 裡的 GUID 資訊,這是非常關鍵的,因為 GUID 用於將 URL 路徑與文章資訊對應起來:
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com');
5. 更改 Siteurl & Homeurl
當你將網站從本地移到真正的伺服器,網站並無法使用,因為完整的路徑依然指向 localhost,你需要修改網站的 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';
6. 刪除 Pingback 資料
受歡迎的文章會收到大量的 pingback 資訊,這會讓資料庫的體積龐大,可以使用下面 SQL 陳述式刪除:
DELETE FROM wp_comments WHERE comment_type = 'pingback';
7. 更改圖片路徑
如果你使用 CDN 來處理圖片訪問,在建立完 CNAME 記錄後,你可通過下面查詢來修改所有映像的路徑:
UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="http://www.oldsiteurl.com', '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';
8. 標出無用的標籤
刪除文章時並不會保證刪除對應的標籤,你必須手工來做這個事情,下面這個查詢可讓你找出那些沒有用到的標籤:
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;
9. 重設密碼
如果想重設登入密碼,如果嫌麻煩可直接用下面的 SQL 陳述式來完成:
UPDATE wp_users SET user_pass = MD5( 'new_password' ) WHERE user_login = 'your-username';
10. 更新文章中繼資料
如果你的每篇文章都保持了特別的 URL ,可使用下面語句來處理:
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://www.oldsiteurl.com','http://www.newsiteurl.com');
在做任何修改之前,我們建議你對資料庫做好備份後再操作。