你是不是遇到过以下几种状态:
一切的这些,都涉及到一个关键词:批量修正。假如在WordPress背景,手动地去一个一个修正文章内容,置信会让你很抓狂,对一些具有上千篇文章的博客来讲,几乎是不大概完成任务。本文将教你怎样运用SQL语句来操纵你的数据库,完成数据的批量修正。
假如你没学过数据库的相干学问,一定不知道SQL是什么,然则本文所涉及到的内容不须要你相识数据库的学问,也不须要你通晓SQL语句的编写,你完全能够直接运用本文提到的SQL,下面我们将分条引见各个SQL语句的功用,一切语句都运用默许的 wp_ 表前缀,假如你的不是,请自行变动。
入手下手之前,先引见以下怎样实行SQL语句,举行批量操纵。如今平常的空间都是用phpmyadmin来治理数据库,这里将以phpmyadmin为例来引见怎样实行SQL语句:
进入你的phpmyadmin治理页面,然后进入你的博客对应的数据库
菜单栏有个 SQL 选项,点击进去
涌现一个SQL语句的输入框,如今你就能够在里面输入SQL语句了
输入终了,点击 实行 ,将实行你适才输入的SQL语句
SQL语句实行终了,你的文章也被批量修正了,如今去看看你的文章是不是都被变动了
末了提个醒:以下引见的SQL语句都在我的博客上做过测试,然则尽管如此,操纵数据库之前都要先备份一下你的数据库;按期备份你的数据库是好习惯
1、批量修正文章内容:
假如你想替代之前写过的一切文章中的某些内容,如替代博客的称号,替代博客的网址,替代文章配图的链接等等,你能够运用以下SQL语句:
UPDATE wp_posts
SET post_content = replace( post_content, '爱找主题', '爱找主题网站' );
该语句的功用是将一切文章中的 爱找主题 字眼,悉数替代成 爱找主题网站,你能够依据须要做一些变动。由于文章内容在数据库中是以HTML代码情势存储的,所以以上SQL语句一样能够替代HTML代码。
假如你只是想变动文章插图的链接,而不想影响其他的链接,能够运用以下SQL语句,一切src="oldurl.com被替代成了src="newurl.com
UPDATE wp_posts
SET post_content =
REPLACE (post_content, 'src="oldurl.com', 'src="newurl.com');
假如你是以图片附件情势上传的话,须要变动图片附件的GUID
UPDATE wp_posts
SET guid = REPLACE (guid, 'oldsiteurl.com', 'newsiteurl.com')
WHERE post_type = 'attachment';
2、批量修正文章择要:
文章择要就是你在WordPress背景编辑文章时,"择要"框中输入的内容,假如你想批量变动文章择要,能够运用以下语句:
UPDATE wp_posts
SET post_excerpt = replace( post_excerpt, '爱找主题', '爱找主题网站' );
该语句的功用是将一切文章择要中的 爱找主题 字眼,悉数替代成 爱找主题网站。
3、批量修正文章的作者
假定你的博客有两名注册用户,张三和李四,你想将张三的一切文章划归到李四名下,这时候候该怎么办呢?你能够实行以下语句:
UPDATE wp_posts
SET post_author = 李四用户id
WHERE post_author = 张三用户id;
那怎样取得 李四的用户id 和 张三的用户id 呢?你能够实行以下SQL语句:
SELECT ID, user_nicename, display_name FROM wp_users;
这时候将列出你博客上一切的注册用户的ID,昵称和公然显现的称号,你如今就能够找到对应用户的ID了,以下图,zhangsan的ID为2,lisi的ID为5:
你的SQL就能够如许写了:
UPDATE wp_posts
SET post_author = 5
WHERE post_author = 2;
4、批量修正文章批评者的网站URL
假定,你的博客有个异常忠厚的读者,给你的博客文章留下许多有效的批评,同时他的批评都填写了留言者的网站URL,然则有一天他的博客域名换了,并请求你更新他留言中的网站URL,那你怎么办?手动一个一个帮他改,这不太实际。你能够运用以下SQL语句:
UPDATE wp_comments
SET comment_author_url =
REPLACE( comment_author_url, 'oldurl.com', 'newurl.com' )
以上语句,将留言者一切旧的网站链接oldurl.com,变动为新的网址newurl.com
5、禁用一切文章的pingback功用:
开启pingback功用,能够在他人援用你的文章链接的情况下,给你发送关照,然则该功用好像对我们的文章没多大协助,那为什么不把pingback给制止了呢?在WordPress背景 - 设置 - 议论,作废勾选"吸收来自外部博客的援用公告(pingbacks 和 trackbacks)",如许今后的文章都不开启pingback,然则该选项不会对之前的已宣布的文章起作用,照样要用到SQL:
UPDATE wp_posts
SET ping_status = 'closed';
6、删除一切文章的修订版:
在通常情况下,文章的修订版对大多数人来讲没多大意义,而且修订版的数目会跟着你修正文章的次数不停增进,这会增添数据库的查询速率,这并不是什么功德。互联网上有许多教你怎样制止修订版的文章,另有许多插件能够删除文章修订版,你能够本身搜刮看看。这里教你怎样运用SQL语句,删除一切已发生的文章修订版数据:
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、删除某个批评者的一切批评:
假如你的博客想要封杀或人,并删除其在你博客的一切留言,能够运用以下SQL语句。
(1)依据留言者的博客URL举行删除,以下SQL语句将删除一切URL为 www.example.com 的批评
DELETE from wp_comments
WHERE comment_author_url LIKE '%www.example.com%';
(2)依据留言者的昵称举行删除,以下语句将删除一切昵称为 example 的批评
DELETE from wp_comments
WHERE comment_author = 'example';
(3)依据留言者的Email举行删除,以下语句将删除一切Email为 [email protected] 的批评
DELETE from wp_comments
WHERE comment_author_email = '[email protected]';
8、替代一切批评中的敏感辞汇:
国内的互联网监控力度表现出了不停加强的趋向,假如你的博客批评中涌现了大批的敏感辞汇,极大概离被墙也不远了。最好的做法是,替代相干的敏感辞汇,以保证你的博客平安,以下SQL语句将一切批评中的 fuck,替代成 **,替代内容依据你的须要来。
UPDATE wp_comments
SET comment_content = replace( comment_content, 'fuck', '**' );
9、封闭文章批评功用
有时候你的博客大概会由于某种原因,须要封闭文章的批评。在WordPress背景 - 设置 - 议论,那边作废勾选"许可人们宣布新文章的批评",今后宣布的文章默许是封闭批评的。然则之前已宣布的文章,若想封闭批评须要你一篇一篇地去修正批评设置,这是一件比较痛楚的事变。以下SQL语句能够协助你轻松地批量封闭文章批评:
(1) 封闭一切旧文章的批评:
通常情况下,一篇旧文章就很少会有人宣布批评了,平常接见旧文章的访客多数来自搜刮引擎,这是功德,然则这部份访客还会提出一些新问题,尤其是技术问题,然则大概文章中提到的技术细节你已忘却,这时候候会让你很难办。最好的做法照样照样禁用旧文章的批评,以下SQL将制止2009-01-01之前宣布的一切文章的批评,你能够依据须要修正日期:
UPDATE wp_posts
SET comment_status = 'closed'
WHERE post_date < '2009-01-01' AND post_status = 'publish';
(2) 封闭一切文章的批评:
有时候很不幸,在不可抗力的要挟下,你不能不封闭一切文章的批评,能够运用以下SQL语句:
UPDATE wp_posts
SET comment_status = 'closed' WHERE post_status = 'publish';

评论列表