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'; |