1. 手動修改密碼
某些情況下,我們忘記了管理員的密碼。或者站點遭受攻擊後,管理員密碼被惡意修改了。這個時候,我們能做的就只有重新設置管理員的密碼了。
以下查詢語句,使用 MySQL 的 MD5() 函數將我們的密碼進行 MD5 加密。
UPDATE 'wp_users' SET 'user_pass' = MD5('PASSWORD') WHERE 'user_login' ='admin' LIMIT 1;
2. 批量轉換日式的作者
大多數剛使用 WordPress 的人可能都是直接使用 “admin”這個用戶來直接發布日志。等您新建一個用戶後,如果想將原來日志的作者批量修改為新用戶的時候,可以使用以下查詢語句。
在執行之前,您需要知道老用戶和新用戶的用戶 ID。
UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;
3. 刪除日志修訂版本和其相關的信息
日志的修訂版本功能在多用戶共同維護一個博客的時候非常有用。不過該功能在數據庫中添加過多的記錄數也是很讓人惱火的。
執行以下語句,可以將數據庫中的日志修訂版本記錄以及其中的其他信息(包括自定義區域等等)刪除掉。執行後,會節省很多數據庫空間。
DELETE a,b,c FROM wp_posts a WHERE a.post_type = 'revision' LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id);
4. 批量刪除垃圾評論
在您的博客沒有安裝 Akismet 或其他替代品的前提下,一段時間沒有進入後台進行評論審核。可能會出現幾百甚至上千條未審核的評論。而且大部分可能是垃圾評論。這個時候,如果您在後台進行刪除,可能會浪費掉您很多時間。以下語句可以在數據庫中批量刪除掉所有未審核的評論。
奉勸一句,還是安裝 Akismet 或類似的插件吧,可以省卻您很多煩惱。
DELETE from wp_comments WHERE comment_approved = '0';
5. 查找未使用的標簽
標簽的記錄是存放在 wp_terms 這個數據表中的。有時,可能部分標簽創建了但是沒有被使用,他們仍然會在數據表中。以下語句可以對這些未使用的標簽進行查詢,您可以安全的將其刪除。
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;
6. 查找並替換數據
該語句不光是在 WordPress 的使用過程中能用到。您可以在很多地方用到該 MySQL 查詢語句。其使用 MySQL 的 replace() 函數將一段字符串替換成您指定的另一段字符串。
UPDATE table_name SET field_name = replace( field_name, 'string_to_find', 'string_to_replace' ) ;
7. 獲得發表評論訪問者的電子郵箱地址列表
該語句可以返回一個在您博客上進行評論的用戶的電子郵箱地址列表。語句中的 DISTINCT 參數用來保證每個電子郵箱地址只顯示一次。
SELECT DISTINCT comment_author_email FROM wp_comments;
8. 一次性禁用掉所有插件
雖然新版的 WordPress 已經可以直接在後台對插件進行批量的啟用和禁用操作。但是當某些插件引起整個站點不能正常訪問的時候,我們就可以使用以下語句禁用掉站點內所有的插件,然後再進入到 WordPress 後台進行調試操作。
UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins';
9. 刪除所有標簽
標簽的信息是存放在 wp_terms 數據表中的。而且,是和分類以及其他一些信息存放在相同一個表中。如果您想刪除所有的標簽記錄,是無法簡單的清空 wp_terms 這個數據表的。這會導致分類信息丟失。
執行以下語句,可以僅僅刪除掉標簽記錄以及與日志的關聯信息,而其他的分類等信息不會發生改變。
DELETE a,b,cFROM database.prefix_terms AS a LEFT JOIN database.prefix_term_taxonomy AS c ON a.term_id = c.term_id LEFT JOIN database.prefix_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_idWHERE ( c.taxonomy = 'post_tag' AND c.count = 0 );
10. 列舉無用的日志信息
日志的 Meta 信息通常是由插件或自定義區域建立的。它們非常實用,但也會讓您的數據庫尺寸快速的變得臃腫。以下語句會顯示 postmeta 表中那些沒有在 post 表有對應關系的記錄,便於您對數據庫進行清理。
SELECT * FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL;
11. 禁用老日志的評論功能
某些時候,您希望把以前的日志評論功能關閉掉。可能導致您這麼作出決定的原因有很多,您可以使用以下語句將指定日期之前發布的日志評論功能關閉掉。
UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2009-01-01' AND post_status = 'publish';
12. 替換評論者的鏈接
上文提到了 MySQL 的 replace() 函數。該條語句就是一個很好的例子。如果您的站點域名發生了改變,您可以使用該語句將您在自己站上發表的評論中的鏈接批量替換為新的域名。
UPDATE wp_comments SET comment_author_url = REPLACE( comment_author_url, 'http://oldurl.com', 'http://newurl.com' );
13. 替換評論者的電子郵箱地址
和上一條差不多,批量替換掉電子郵箱地址。
UPDATE wp_comments SET comment_author_email = REPLACE( comment_author_email, '[email protected]', '[email protected]' );
14. 刪除包含指定鏈接的評論
某些垃圾評論發布者還是很會鑽空子的。經常發布一些貌似與文章相關的評論,可評論內容中通常包含惡意網站的鏈接。等你發現的時候,可能這樣的評論已經很多了。使用以下代碼,可以方便的將包含指定鏈接地址的評論一次性刪除掉。
DELETE from wp_comments WHERE comment_author_url LIKE "%wpbeginner%" ;