大多數使用 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');
在做任何修改之前,我們建議你對數據庫做好備份後再操作。