你是否遇到過以下幾種狀況:
- 部落格更換域名,部落格文章的內(nèi)容也要跟著換
- 使用的圖片地址更換了
- 寫了很多文章,回過頭來想切換作者
- 想刪除某個(gè)可惡留言者的所有留言
- #想更改某個(gè)留言者所有留言的網(wǎng)站URL
- 想要停用所有文章的pingback
- 想要停用所有文章的評(píng)論功能
批量修改。如果在WordPress後臺(tái),手動(dòng)地去一個(gè)一個(gè)修改文章內(nèi)容,相信會(huì)讓你很抓狂,對(duì)一些擁有上千篇文章的博客來說,幾乎是不可能完成任務(wù)。本文將教你如何使用SQL語句來操作你的資料庫,實(shí)現(xiàn)資料的大量修改。
如果你沒學(xué)過資料庫的相關(guān)知識(shí),肯定不知道SQL是什麼,但本文所涉及的內(nèi)容不需要你了解資料庫的知識(shí),也不需要你精通SQL語句的編寫,你完全可以直接使用本文提到的SQL,下面我們將分條介紹各個(gè)SQL語句的功能,所有語句都使用預(yù)設(shè)的wp_ 表前綴,如果你的不是,請(qǐng)自行更改。
開始之前,先介紹以下如何執(zhí)行SQL語句,進(jìn)行批次操作。現(xiàn)在一般的空間都是用phpmyadmin來管理資料庫,這裡將以phpmyadmin為例來介紹如何執(zhí)行SQL語句:- 進(jìn)入你的phpmyadmin管理頁面,然後進(jìn)入你的部落格對(duì)應(yīng)的資料庫
- 功能表列有個(gè)
SQL 選項(xiàng),點(diǎn)選進(jìn)去
- 出現(xiàn)一個(gè)SQL語句的輸入框,現(xiàn)在你就可以在裡面輸入SQL語句了
- 輸入完畢,點(diǎn)選
執(zhí)行 ,將執(zhí)行你剛才輸入的SQL語句
##SQL語句執(zhí)行完畢,你的文章也被批次修改了,現(xiàn)在去看看你的文章是否都被更改了 - 最後提個(gè)醒:以下介紹的SQL語句都在我的部落格上做過測試,但是儘管如此,操作資料庫之前都要先備份一下你的資料庫;定期備份你的資料庫是好習(xí)慣
- SQL指令執(zhí)行視窗:
如果你想取代之前寫過的所有文章中的某些內(nèi)容,例如更換部落格的名稱,更換部落格的網(wǎng)址,更換文章配圖的連結(jié)等等,你可以使用以下SQL語句:
UPDATE wp_posts SET post_content = replace( post_content, '露兜博客', '露兜中文博客' );
字眼,全部替換成露兜中文博客,你可以根據(jù)需要做一些更改。因?yàn)槲恼聝?nèi)容在資料庫中是以HTML程式碼形式儲(chǔ)存的,所以以上SQL語句同樣可以取代HTML程式碼。 如果你只是想更改文章插圖的鏈接,而不想影響其他的鏈接,可以使用以下SQL語句,所有src="oldurl.com都被替換成了src="newurl.com
UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="oldurl.com', 'src="newurl.com');
UPDATE wp_posts SET guid = REPLACE (guid, 'oldsiteurl.com', 'newsiteurl.com') WHERE post_type = 'attachment';2、批次修改文章摘要:
文章摘要就是你在WordPress後臺(tái)編輯文章時(shí),"摘要"框中輸入的內(nèi)容,如果你想要批量更改文章摘要,可以使用以下語句:
UPDATE wp_posts SET post_excerpt = replace( post_excerpt, '露兜博客', '露兜中文博客' );
字眼,全部替換成露兜中文部落格。
3、大量修改文章的作者:假設(shè)你的部落格有兩位註冊(cè)用戶,張三和李四,你想將張三的所有文章劃歸到李四名下,這時(shí)候該怎麼辦?你可以執(zhí)行以下語句:
UPDATE wp_posts SET post_author = 李四用戶id WHERE post_author = 張三用戶id;
SELECT ID, user_nicename, display_name FROM wp_users;
UPDATE wp_posts SET post_author = 5 WHERE post_author = 2;
4、批量修改文章評(píng)論者的網(wǎng)站URL:
假設(shè),你的博客有個(gè)非常忠實(shí)的讀者,給你的博客文章留下很多有用的評(píng)論,同時(shí)他的評(píng)論都填寫了留言者的網(wǎng)站URL,但是有一天他的博客域名換了,并請(qǐng)求你更新他留言中的網(wǎng)站URL,那你怎么辦?手動(dòng)一個(gè)一個(gè)幫他改,這不太現(xiàn)實(shí)。你可以使用以下SQL語句:
UPDATE wp_comments SET comment_author_url = REPLACE( comment_author_url, 'oldurl.com', 'newurl.com' )
以上語句,將留言者所有舊的網(wǎng)站鏈接oldurl.com,更改為新的網(wǎng)址newurl.com
5、禁用所有文章的pingback功能:
開啟pingback功能,可以在別人引用你的文章鏈接的情況下,給你發(fā)送通知,但是該功能似乎對(duì)我們的文章沒多大幫助,那為何不把pingback給禁止了呢?在WordPress后臺(tái) - 設(shè)置 - 討論,取消勾選"接收來自外部博客的引用通告(pingbacks 和 trackbacks)",這樣以后的文章都不開啟pingback,但是該選項(xiàng)不會(huì)對(duì)之前的已發(fā)布的文章起作用,還是要用到SQL:
UPDATE wp_posts SET ping_status = 'closed';
6、刪除所有文章的修訂版:
在通常情況下,文章的修訂版對(duì)大多數(shù)人來說沒多大意義,而且修訂版的數(shù)量會(huì)隨著你修改文章的次數(shù)不斷增長,這會(huì)增加數(shù)據(jù)庫的查詢速度,這并不是什么好事?;ヂ?lián)網(wǎng)上有很多教你如何禁止修訂版的文章,還有很多插件可以刪除文章修訂版,你可以自己搜索看看。這里教你如何使用SQL語句,刪除所有已產(chǎn)生的文章修訂版數(shù)據(jù):
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';
7、刪除某個(gè)評(píng)論者的所有評(píng)論:
如果你的博客想要封殺某人,并刪除其在你博客的所有留言,可以使用以下SQL語句。
(1)根據(jù)留言者的博客URL進(jìn)行刪除,以下SQL語句將刪除所有URL為 www.example.com 的評(píng)論
DELETE from wp_comments WHERE comment_author_url LIKE '%www.example.com%';
(2)根據(jù)留言者的昵稱進(jìn)行刪除,以下語句將刪除所有昵稱為 example 的評(píng)論
DELETE from wp_comments WHERE comment_author = 'example';
(2)根據(jù)留言者的Email進(jìn)行刪除,以下語句將刪除所有Email為 example@example.com 的評(píng)論
DELETE from wp_comments WHERE comment_author_email = 'example@example.com';
8、替換所有評(píng)論中的敏感詞匯:
國內(nèi)的互聯(lián)網(wǎng)監(jiān)控力度表現(xiàn)出了不斷加強(qiáng)的趨勢,如果你的博客評(píng)論中出現(xiàn)了大量的敏感詞匯,很可能離被墻也不遠(yuǎn)了。最好的做法是,替換相關(guān)的敏感詞匯,以保證你的博客安全,以下SQL語句將所有評(píng)論中的 fuck,替換成 **,替換內(nèi)容根據(jù)你的需要來。
UPDATE wp_comments SET comment_content = replace( comment_content, 'fuck', '**' );
9、關(guān)閉文章評(píng)論功能
有時(shí)候你的博客可能會(huì)因?yàn)槟撤N原因,需要關(guān)閉文章的評(píng)論。在WordPress后臺(tái) - 設(shè)置 - 討論,那里取消勾選"允許人們發(fā)表新文章的評(píng)論",以后發(fā)表的文章默認(rèn)是關(guān)閉評(píng)論的。但是之前已經(jīng)發(fā)表的文章,若想關(guān)閉評(píng)論需要你一篇一篇地去修改評(píng)論設(shè)置,這是一件比較痛苦的事情。以下SQL語句可以幫助你輕松地批量關(guān)閉文章評(píng)論:
(1) 關(guān)閉所有舊文章的評(píng)論:
通常情況下,一篇舊文章就很少會(huì)有人發(fā)表評(píng)論了,一般訪問舊文章的訪客大都來自搜索引擎,這是好事,但是這部分訪客還會(huì)提出一些新問題,尤其是技術(shù)問題,但是可能文章中提到的技術(shù)細(xì)節(jié)你已經(jīng)淡忘,這時(shí)候會(huì)讓你很難辦。最好的做法還是還是禁用舊文章的評(píng)論,以下SQL將禁止2009-01-01之前發(fā)表的所有文章的評(píng)論,你可以根據(jù)需要修改日期:
UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2009-01-01' AND post_status = 'publish';
(2) 關(guān)閉所有文章的評(píng)論:
有時(shí)候很不幸,在不可抗力的威脅下,你不得不關(guān)閉所有文章的評(píng)論,可以使用以下SQL語句:
UPDATE wp_posts SET comment_status = 'closed' WHERE post_status = 'publish';
推薦學(xué)習(xí):《WordPress教程》