使用phpmyadmin批量修改WordPress等博客文章信息
说明:有时候网站出现变动后,就需要修改很多信息,很多人只会手动修改,这对于数据很少的还好说,多就需要时间了,比如开启ssl后,需要将http开头的都修改成https,这样手动就很麻烦了,可以利用phpmyadmin
来批量修改了,这样很快。
以下修改都需要SQL
语句来执行,即使你不知道SQL
语句是什么,那没事,直接使用下面的语句命令就行了,不过这里先介绍以下如何执行SQL
语句,进行批量操作。现在一般的空间都是用phpmyadmin
来管理数据库,这里将以phpmyadmin
为例来介绍如何执行SQL语句:
1、进入你的phpmyadmin
管理页面,然后进入你的博客对应的数据库
2、菜单栏有个SQL
选项,点击进去
3、出现一个SQL
语句的输入框,现在你就可以在里面输入SQL
语句了
4、输入完毕,点击执行 ,将执行你刚才输入的SQL
语句
5、SQL
语句执行完毕,你的文章也被批量修改了,现在去看看你的文章是否都被更改了
6、最后提个醒:以下介绍的SQL
语句都在我的博客上做过测试,但是尽管如此,操作数据库之前都要先备份一下你的数据库;定期备份你的数据库是好习惯
SQL命令执行窗口:
这里以wordpress
为例,其它博客的话多看几遍以下SQL
语句应该也会修改了。
1、批量修改文章内容:
如果你想替换之前写过的所有文章中的某些内容,如更换博客的名称,更换博客的网址,更换文章配图的链接等等,你可以使用以下SQL
语句:
UPDATE wp_posts
SET post_content = REPLACE( post_content, 'http://moerats.com', 'https://moerats.com' );
该语句的功能是将所有文章中的http://moerats.com
字眼,全部替换成https://moerats.com
,你可以根据需要做一些更改。因为文章内容在数据库中是以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, 'Rat', 'Rats' );
该语句的功能是将所有文章摘要中的Rat
字眼,全部替换成Rats
。
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
了。
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为example@example.com
的评论
DELETE FROM wp_comments
WHERE comment_author_email = 'example@example.com';
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';
相信一般人看完后,也会修改其它博客,比如Typecho
,Emlog
等信息了。