WordPress如何批量修改文章信息?下面本篇文章給大家介紹一下WordPress批量修改文章內(nèi)容、摘要、作者、所有評(píng)論、敏感詞匯等信息,希望對(duì)大家有所幫助!
你是否遇到過如下幾種狀況:
- 博客更換域名,博客文章的內(nèi)容也要跟著換
- 使用的圖片地址更換了
- 寫了很多文章,回過頭來想切換作者
- 想刪除某個(gè)可惡留言者的所有留言
- 想更改某個(gè)留言者所有留言的網(wǎng)站URL
- 想要禁用所有文章的pingback
- 想要禁用所有文章的評(píng)論功能
所有的這些,都涉及到一個(gè)關(guān)鍵詞:批量修改。如果在WordPress后臺(tái),手動(dòng)地去一個(gè)一個(gè)修改文章內(nèi)容,相信會(huì)讓你很抓狂,對(duì)一些擁有上千篇文章的博客來說,幾乎是不可能完成任務(wù)。本文將教你如何使用SQL語句來操作你的數(shù)據(jù)庫,實(shí)現(xiàn)數(shù)據(jù)的批量修改。
如果你沒學(xué)過數(shù)據(jù)庫的相關(guān)知識(shí),肯定不知道SQL是什么,但是本文所涉及到的內(nèi)容不需要你了解數(shù)據(jù)庫的知識(shí),也不需要你精通SQL語句的編寫,你完全可以直接使用本文提到的SQL,下面我們將分條介紹各個(gè)SQL語句的功能,所有語句都使用默認(rèn)的 wp_ 表前綴,如果你的不是,請(qǐng)自行更改。
開始之前,先介紹以下如何執(zhí)行SQL語句,進(jìn)行批量操作?,F(xiàn)在一般的空間都是用phpmyadmin來管理數(shù)據(jù)庫,這里將以phpmyadmin為例來介紹如何執(zhí)行SQL語句:
-
進(jìn)入你的phpmyadmin管理頁面,然后進(jìn)入你的博客對(duì)應(yīng)的數(shù)據(jù)庫
-
菜單欄有個(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語句都在我的博客上做過測(cè)試,但是盡管如此,操作數(shù)據(jù)庫之前都要先備份一下你的數(shù)據(jù)庫;定期備份你的數(shù)據(jù)庫是好習(xí)慣
SQL命令執(zhí)行窗口:
1、批量修改文章內(nèi)容:
如果你想替換之前寫過的所有文章中的某些內(nèi)容,如更換博客的名稱,更換博客的網(wǎng)址,更換文章配圖的鏈接等等,你可以使用以下SQL語句:
UPDATE wp_posts SET post_content = replace( post_content, '露兜博客', '露兜中文博客' );
登錄后復(fù)制
該語句的功能是將所有文章中的 露兜博客 字眼,全部替換成 露兜中文博客,你可以根據(jù)需要做一些更改。因?yàn)槲恼聝?nèi)容在數(shù)據(jù)庫中是以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');
登錄后復(fù)制
如果你是以圖片附件形式上傳的話,需要更改圖片附件的GUID
UPDATE wp_posts SET guid = REPLACE (guid, 'oldsiteurl.com', 'newsiteurl.com') WHERE post_type = 'attachment';
登錄后復(fù)制
2、批量修改文章摘要:
文章摘要就是你在WordPress后臺(tái)編輯文章時(shí),"摘要"框中輸入的內(nèi)容,如果你想批量更改文章摘要,可以使用以下語句:
UPDATE wp_posts SET post_excerpt = replace( post_excerpt, '露兜博客', '露兜中文博客' );
登錄后復(fù)制
該語句的功能是將所有文章摘要中的 露兜博客 字眼,全部替換成 露兜中文博客。
3、批量修改文章的作者:
假設(shè)你的博客有兩名注冊(cè)用戶,張三和李四,你想將張三的所有文章劃歸到李四名下,這時(shí)候該怎么辦呢?你可以執(zhí)行以下語句:
UPDATE wp_posts SET post_author = 李四用戶id WHERE post_author = 張三用戶id;
登錄后復(fù)制
那如何獲得 李四的用戶id 和 張三的用戶id 呢?你可以執(zhí)行以下SQL語句:
SELECT ID, user_nicename, display_name FROM wp_users;
登錄后復(fù)制
這時(shí)將列出你博客上所有的注冊(cè)用戶的ID,昵稱和公開顯示的名稱,你現(xiàn)在就可以找到對(duì)應(yīng)用戶的ID了,如下圖,zhangsan的ID為2,lisi的ID為5:
你的SQL就可以這樣寫了:
UPDATE wp_posts SET post_author = 5 WHERE post_author = 2;
登錄后復(fù)制
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' )
登錄后復(fù)制
以上語句,將留言者所有舊的網(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';
登錄后復(fù)制
6、刪除所有文章的修訂版:
在通常情況下,文章的修訂版對(duì)大多數(shù)人來說沒多大意義,而且修訂版的數(shù)量會(huì)隨著你修改文章的次數(shù)不斷增長(zhǎng),這會(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';
登錄后復(fù)制
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%';
登錄后復(fù)制
(2)根據(jù)留言者的昵稱進(jìn)行刪除,以下語句將刪除所有昵稱為 example 的評(píng)論
DELETE from wp_comments WHERE comment_author = 'example';
登錄后復(fù)制
(2)根據(jù)留言者的Email進(jìn)行刪除,以下語句將刪除所有Email為 example@example.com 的評(píng)論
DELETE from wp_comments WHERE comment_author_email = 'example@example.com';
登錄后復(fù)制
8、替換所有評(píng)論中的敏感詞匯:
國(guó)內(nèi)的互聯(lián)網(wǎng)監(jiān)控力度表現(xiàn)出了不斷加強(qiáng)的趨勢(shì),如果你的博客評(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', '**' );
登錄后復(fù)制
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';
登錄后復(fù)制
(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教程》