WordPress 將其所有信息片段 (包括文章、頁面、評論、博客鏈接、
插件設置等) 存儲在 MySQL 數據庫中。 雖然 WordPress 用户可以通過網站後台編輯控制以上信息片段。 在一定程度上。
不過假設你的 WordPress 網站上有成百上千篇文章,而你需要進行全站範圍的改動,
這時從後台逐條編輯就有點費時費力了,並且犯錯的幾率也會提高。 最好的方法是進入 WordPress 的 MySQL 數據庫執行必要的查詢 (改動) 。
通過 MySQL 可以迅速地完成以上任務,為你節省更多時間。
下面要介紹的就是一些省時省力的 WordPress SQL 查詢方法。
事先備份
WordPress 數據庫裏存儲了你精心發表的每一篇文章,來自你的讀者的所有評論,以及你對自己網站進行的所有個性化設置。
因此,無論你對自己有多自信,都請記住一定要事先備份 WordPress 數據庫。 你可以通過備份插件進行備份。
為所有文章和頁面添加自定義字段
這段代碼可以為 WordPress 數據庫內所有文章和頁面添加一個自定義字段。 你需要做的就是把代碼中的 『UniversalCutomField『 替
換成你需要的文字,然後把 『MyValue『 改成需要的值。
INSERT INTO wp_postmeta (post_id, meta_key, meta_value) WHERE ID NOT IN (SELECT post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField'); |
如果只需要為文章添加自定義字段,可以使用下面這段代碼:
INSERT INTO wp_postmeta (post_id, meta_key, meta_value) `` AND post_type = 'post'; |
如果只需要為頁面添加自定義字段,可以使用下面這段代碼:
INSERT INTO wp_postmeta (post_id, meta_key, meta_value) 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 |
批量刪除垃圾評論
執行以下 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'; |