你是否遇到过如下几种状况:
1 、博客更换域名,博客文章的内容也要跟着换
2 、使用的图片地址更换了
3 、写了很多文章,回过头来想切换作者
4 、想删除某个可恶留言者的所有留言
5 、想更改某个留言者所有留言的网站 URL
6 、想要禁用所有文章的 pingback 想要禁用所有文章的评论功能
……等等。
所有的这些,都涉及到一个关键词:批量修改。如果在 WordPress 后台,手动地去一个一个修改文章内容,相信会让你很抓狂,对一些拥有上千篇文章的博客来说,几乎是不可能完成任务。本文将教你如何使用 SQL 语句来操作你的数据库,实现数据的批量修改。
如果你没学过数据库的相关知识,肯定不知道 SQL 是什么,但是本文所涉及到的内容不需要你了解数据库的知识,也不需要你精通 SQL 语句的编写,你完全可以直接使用本文提到的 SQL,下面我们将分条介绍各个 SQL 语句的功能,所有语句都使用默认的 wp_ 表前缀,如果你的不是,请自行更改。
1 、批量修改文章内容
如果你想替换之前文章中的某些内容,如更换博客的名称,更换博客的网址,更换文章配图的链接等等,则执行以下 SQL 语句:
UPDATE wp_posts
SET post_content = REPLACE( post_content, ‘WordPress 教程网’, ‘ 我就爱 Wordpress’ );
该语句的功能是将所有文章中的 Wordpress 教程网,全部替换成我就爱 Wordpress,你可以根据需要做一些更改。
如果你只是想更改文章插图的链接,而不想影响其他的链接,可以使用以下 SQL 语句:
UPDATE wp_posts
SET post_content =
REPLACE (post_content, ‘src=” 旧的链接地址’, ‘src=” 新的链接地址’);
如果你是以图片附件形式上传的话,需要更改图片附件的 GUID:
UPDATE wp_posts
SET guid = REPLACE (guid, ‘ 旧的链接地址’, ‘ 新的链接地址’)
WHERE post_type = ‘attachment’;
2 、批量修改文章摘要
文章摘要就是你在 WordPress 后台编辑文章时,” 摘要” 框中输入的内容,如果你想批量更改文章摘要,可以使用以下语句:
UPDATE wp_posts
SET post_excerpt = REPLACE( post_excerpt, ‘WordPress 教程网’, ‘ 我就爱 Wordpress’ );
该语句的功能是将所有文章摘要中的 Wordpress 教程网字眼,全部替换成我就爱 Wordpress 。
3 、批量修改文章的作者
假设你的博客有两名注册用户,张三和李四,你想将张三的所有文章划归到李四名下,则可以执行以下语句:
UPDATE wp_posts
SET post_author = 李四用户 id
WHERE post_author = 张三用户 id;
那如何获得李四的用户 id 和张三的用户 id 呢?你可以执行以下 SQL 语句:
SELECT ID, user_nicename, display_name FROM wp_users;
4 、批量修改文章评论者的网站 URL
假设,你的博客有个非常忠实的读者,给你的博客文章留下很多有用的评论,同时他的评论都填写了留言者的网站 URL,但是有一天他的博客域名换了,并请求你更新他留言中的网站 URL,那你怎么办?手动一个一个帮他改,这不太现实。你可以使用以下 SQL 语句:
UPDATE wp_comments
SET comment_author_url =
REPLACE( comment_author_url, ‘ 旧的链接’, ‘ 新的链接’ )
以上语句,将留言者所有旧的网站链接旧的链接,更改为新的网址。
5 、禁用所有文章的 pingback 功能
开启 pingback 功能,可以在别人引用你的文章链接的情况下,给你发送通知,但是该功能似乎对我们的文章没多大帮助,所以禁用 pingback 功能的 SQL 如下:
UPDATE wp_posts
SET ping_status = ‘closed’;
6 、删除某个评论者的所有评论
如果你的博客想要封杀某人,并删除其在你博客的所有留言,可以使用以下 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’;
7 、替换所有评论中的敏感词汇
国内的互联网监控力度表现出了不断加强的趋势,如果你的博客评论中出现了大量的敏感词汇,很可能离被墙也不远了。最好的做法是,替换相关的敏感词汇,以保证你的博客安全,以下 SQL 语句将所有评论中的 尼玛,替换成 **,替换内容根据你的需要来。
UPDATE wp_comments
SET comment_content = REPLACE( comment_content, ‘ 尼玛’, ‘**’ );
8 、关闭文章评论功能
如果你想关闭指定日期前的文章评论,则执行以下 SQL 语句:
UPDATE wp_posts
SET comment_status = ‘closed’
WHERE post_date < ‘ 指定日期’ AND post_status = ‘publish’;
如果你想关闭所有文章评论,则执行以下 SQL 语句:
UPDATE wp_posts
SET comment_status = ‘closed’ WHERE post_status = ‘publish’;
以上!