你是不是遇到过以下几种状态:

  • 博客替代域名,博客文章的内容也要跟着换

  • 运用的图片地点替代了

  • 写了许多文章,回过头来想切换作者

  • 想删除某个可恶留言者的一切留言

  • 想变动某个留言者一切留言的网站URL

  • 想要禁用一切文章的pingback

  • 想要禁用一切文章的批评功用

一切的这些,都涉及到一个关键词:批量修正。假如在WordPress背景,手动地去一个一个修正文章内容,置信会让你很抓狂,对一些具有上千篇文章的博客来讲,几乎是不大概完成任务。本文将教你怎样运用SQL语句来操纵你的数据库,完成数据的批量修正。

假如你没学过数据库的相干学问,一定不知道SQL是什么,然则本文所涉及到的内容不须要你相识数据库的学问,也不须要你通晓SQL语句的编写,你完全能够直接运用本文提到的SQL,下面我们将分条引见各个SQL语句的功用,一切语句都运用默许的 wp_ 表前缀,假如你的不是,请自行变动。

入手下手之前,先引见以下怎样实行SQL语句,举行批量操纵。如今平常的空间都是用phpmyadmin来治理数据库,这里将以phpmyadmin为例来引见怎样实行SQL语句:

  • 进入你的phpmyadmin治理页面,然后进入你的博客对应的数据库

  • 菜单栏有个 SQL 选项,点击进去

  • 涌现一个SQL语句的输入框,如今你就能够在里面输入SQL语句了

  • 输入终了,点击 实行 ,将实行你适才输入的SQL语句

  • SQL语句实行终了,你的文章也被批量修正了,如今去看看你的文章是不是都被变动了

  • 末了提个醒:以下引见的SQL语句都在我的博客上做过测试,然则尽管如此,操纵数据库之前都要先备份一下你的数据库;按期备份你的数据库是好习惯

1、批量修正文章内容:

假如你想替代之前写过的一切文章中的某些内容,如替代博客的称号,替代博客的网址,替代文章配图的链接等等,你能够运用以下SQL语句:

  1. UPDATE wp_posts

  2. SET post_content = replace( post_content, '爱找主题', '爱找主题网站' );

该语句的功用是将一切文章中的 爱找主题 字眼,悉数替代成 爱找主题网站,你能够依据须要做一些变动。由于文章内容在数据库中是以HTML代码情势存储的,所以以上SQL语句一样能够替代HTML代码。
假如你只是想变动文章插图的链接,而不想影响其他的链接,能够运用以下SQL语句,一切src="oldurl.com被替代成了src="newurl.com

  1. UPDATE wp_posts   

  2. SET post_content =   

  3. REPLACE (post_content, 'src="oldurl.com', 'src="newurl.com');  

假如你是以图片附件情势上传的话,须要变动图片附件的GUID

  1. UPDATE wp_posts

  2. SET  guid = REPLACE (guid, 'oldsiteurl.com', 'newsiteurl.com')

  3. WHERE post_type = 'attachment';

2、批量修正文章择要:

文章择要就是你在WordPress背景编辑文章时,"择要"框中输入的内容,假如你想批量变动文章择要,能够运用以下语句:

  1. UPDATE wp_posts

  2. SET post_excerpt = replace( post_excerpt, '爱找主题', '爱找主题网站' );

该语句的功用是将一切文章择要中的 爱找主题 字眼,悉数替代成 爱找主题网站

3、批量修正文章的作者

假定你的博客有两名注册用户,张三和李四,你想将张三的一切文章划归到李四名下,这时候候该怎么办呢?你能够实行以下语句:

  1. UPDATE wp_posts

  2. SET post_author = 李四用户id

  3. WHERE post_author = 张三用户id;

那怎样取得 李四的用户id 和 张三的用户id 呢?你能够实行以下SQL语句:

  1. SELECT ID, user_nicename, display_name FROM wp_users;

这时候将列出你博客上一切的注册用户的ID,昵称和公然显现的称号,你如今就能够找到对应用户的ID了,以下图,zhangsan的ID为2,lisi的ID为5:

WordPress 怎样批量修改文章信息? SEO建站

你的SQL就能够如许写了:

  1. UPDATE wp_posts

  2. SET post_author = 5

  3. WHERE post_author = 2;

4、批量修正文章批评者的网站URL

假定,你的博客有个异常忠厚的读者,给你的博客文章留下许多有效的批评,同时他的批评都填写了留言者的网站URL,然则有一天他的博客域名换了,并请求你更新他留言中的网站URL,那你怎么办?手动一个一个帮他改,这不太实际。你能够运用以下SQL语句:

  1. UPDATE wp_comments

  2. SET comment_author_url =

  3. REPLACE( comment_author_url, 'oldurl.com', 'newurl.com' )

以上语句,将留言者一切旧的网站链接oldurl.com,变动为新的网址newurl.com

5、禁用一切文章的pingback功用:

开启pingback功用,能够在他人援用你的文章链接的情况下,给你发送关照,然则该功用好像对我们的文章没多大协助,那为什么不把pingback给制止了呢?在WordPress背景 - 设置 - 议论,作废勾选"吸收来自外部博客的援用公告(pingbacks 和 trackbacks)",如许今后的文章都不开启pingback,然则该选项不会对之前的已宣布的文章起作用,照样要用到SQL:

  1. UPDATE wp_posts

  2. SET ping_status = 'closed';

6、删除一切文章的修订版:

在通常情况下,文章的修订版对大多数人来讲没多大意义,而且修订版的数目会跟着你修正文章的次数不停增进,这会增添数据库的查询速率,这并不是什么功德。互联网上有许多教你怎样制止修订版的文章,另有许多插件能够删除文章修订版,你能够本身搜刮看看。这里教你怎样运用SQL语句,删除一切已发生的文章修订版数据:

  1. DELETE a,b,c

  2. FROM wp_posts a

  3. LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)

  4. LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)

  5. WHERE a.post_type = 'revision';

7、删除某个批评者的一切批评:

假如你的博客想要封杀或人,并删除其在你博客的一切留言,能够运用以下SQL语句。

(1)依据留言者的博客URL举行删除,以下SQL语句将删除一切URL为 www.example.com 的批评

  1. DELETE from wp_comments

  2. WHERE comment_author_url LIKE '%www.example.com%';

(2)依据留言者的昵称举行删除,以下语句将删除一切昵称为 example 的批评

  1. DELETE from wp_comments

  2. WHERE comment_author = 'example';

(3)依据留言者的Email举行删除,以下语句将删除一切Email为 [email protected] 的批评

  1. DELETE from wp_comments

  2. WHERE comment_author_email = '[email protected]';

8、替代一切批评中的敏感辞汇:

国内的互联网监控力度表现出了不停加强的趋向,假如你的博客批评中涌现了大批的敏感辞汇,极大概离被墙也不远了。最好的做法是,替代相干的敏感辞汇,以保证你的博客平安,以下SQL语句将一切批评中的 fuck,替代成 **,替代内容依据你的须要来。

  1. UPDATE wp_comments

  2. SET comment_content = replace( comment_content, 'fuck', '**' );

9、封闭文章批评功用

有时候你的博客大概会由于某种原因,须要封闭文章的批评。在WordPress背景 - 设置 - 议论,那边作废勾选"许可人们宣布新文章的批评",今后宣布的文章默许是封闭批评的。然则之前已宣布的文章,若想封闭批评须要你一篇一篇地去修正批评设置,这是一件比较痛楚的事变。以下SQL语句能够协助你轻松地批量封闭文章批评:

(1) 封闭一切旧文章的批评:
通常情况下,一篇旧文章就很少会有人宣布批评了,平常接见旧文章的访客多数来自搜刮引擎,这是功德,然则这部份访客还会提出一些新问题,尤其是技术问题,然则大概文章中提到的技术细节你已忘却,这时候候会让你很难办。最好的做法照样照样禁用旧文章的批评,以下SQL将制止2009-01-01之前宣布的一切文章的批评,你能够依据须要修正日期:

  1. UPDATE wp_posts

  2. SET comment_status = 'closed'

  3. WHERE post_date < '2009-01-01' AND post_status = 'publish';

(2) 封闭一切文章的批评:
有时候很不幸,在不可抗力的要挟下,你不能不封闭一切文章的批评,能够运用以下SQL语句:

  1. UPDATE wp_posts

  2. SET comment_status = 'closed' WHERE post_status = 'publish';