文章目录[隐藏]
通过SQL语句来批量修改wordpress博客内容,文章中所有语句都使用默认的wp_表前缀,如果您的数据表前缀不是wp_则需要在语句中作相应更改。
批量修改文章内容
如果您想替换之前写过的所有文章中的某些内容,如更换博客的名称、更换博客的网址、更换文章配图的链接等,您可以使用以下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,使用下面的SQL语句:
UPDATE wp_posts SET guid = REPLACE (guid, 'oldsiteurl.com', newsiteurl.com') WHERE post_type = 'attachment';
批量修改文章摘要
文章摘要就是您在WordPress后台编辑文章时,”摘要”框中输入的内容,如果您想批量更改文章摘要,可以使用以下语句:
UPDATE wp_posts SET post_excerpt = REPLACE( post_excerpt, 'baidu', '百度' );
该语句的功能是将所有文章摘要中的“baidu”字眼全部替换成“百度”。
批量修改文章的作者
假设您的博客有两名注册用户,张三和李四,您想将张三的所有文章划归到李四名下,这时候该怎么办呢?您可以执行以下语句:
UPDATE wp_posts SET post_author = 李四用户idWHERE post_author = 张三用户id;
那么如何获得李四和张三的用户id呢?您可以执行以下SQL语句:
SELECT ID, user_nicename, display_name FROM wp_users;
这时将列出您博客上所有的注册用户的ID,昵称和公开显示的名称。假设张三的ID为2,李四的ID为5,您的SQL就可以这样写了:
UPDATE wp_posts SET post_author = 5WHERE post_author = 2;
批量修改文章评论者的网站URL
假设,您的博客有个非常忠实的读者,给您的博客文章留下很多有用的评论,同时他的评论都填写了留言者的网站URL,但是有一天他的博客域名换了,并请求您更新他留言中的网站URL,那您怎么办?手动一个一个帮他改不太现实 ,您可以使用以下SQL语句:
UPDATE wp_comments SET comment_author_url =REPLACE( comment_author_url, 'oldurl.com', 'newurl.com' )
以上语句,将留言者所有旧的网站链接oldurl.com,更改为新的网址newurl.com
禁用所有文章的pingback功能
开启pingback功能,可以在别人引用您的文章链接的情况下,给您发送通知,但是该功能似乎对我们的文章没多大帮助,那为何不把pingback给禁止了呢?在WordPress后台 – 设置 – 讨论,取消勾选“接收来自外部博客的引用通告(pingbacks 和 trackbacks)”,这样以后的文章都不开启pingback,但是该选项不会对之前的已发布的文章起作用,还是要用到SQL:
UPDATE wp_posts SET ping_status = 'closed';
删除所有文章的修订版
在通常情况下,文章的修订版对大多数人来说没多大意义,而且修订版的数量会随着您修改文章的次数不断增长,这会增加数据库的查询速度,这并不是什么好事。互联网上有很多教您如何禁止修订版的文章,还有很多插件可以删除文章修订版,您可以自己搜索看看。这里教您如何使用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';
删除某个评论者的所有评论
如果您的博客想要封杀某人,并删除其在您博客的所有留言,可以使用以下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';
替换所有评论中的敏感词汇
国内的互联网监控力度表现出了不断加强的趋势,如果您的博客评论中出现了大量的敏感词汇,很可能离被墙也不远了。最好的做法是替换相关的敏感词汇,以保证您的博客安全。以下SQL语句将所有评论中的“fuck”替换成“**”,替换内容根据您的需要来更改。
UPDATE wp_comments SET comment_content = REPLACE( comment_content, 'fuck', '**' );
关闭文章评论功能
有时候您的博客可能会因为某种原因,需要关闭文章的评论。在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';
修改默认管理员 admin 的名称
WP 默认安装会创建一个名为 admin 的管理员帐号,你可以修改这个帐号的名称:
UPDATE wp_users SET user_login = 'Your New Username' WHERE user_login = 'Admin';
删除修订版 Revision
文章修订版浪费了大量的存储资源,当你有数以千计的文章时,这个数值更加惊人,这会影响程序执行的性能、数据获取,降低页面加载时间,解决的办法就是删除这些无用的修订版信息:
DELETE a,b,c FROM wp_posts aLEFT 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'
更改 GUID
在进行博客移植时,你需要修复 wp_posts 表中的 URL 里的 GUID 信息,这是非常关键的,因为 GUID 用于将 URL 路径与文章信息对应起来:
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com');
更改 Siteurl & Homeurl
当你将网站从本地移到真正的服务器,网站并无法使用,因为完整的路径依然指向 localhost,你需要修改网站的 URL 和首页 URL:
UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com') WHERE option_name = 'home' OR option_name = 'siteurl';
删除 Pingback 数据
受欢迎的文章会收到大量的 pingback 信息,这会让数据库的体积庞大,可以使用下面 SQL 语句删除:
DELETE FROM wp_comments WHERE comment_type = 'pingback';
更改图片路径
如果你使用 CDN 来处理图片访问,在创建完 CNAME 记录后,你可通过下面查询来修改所有图像的路径:
UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="http://www.oldsiteurl.com', 'src="http://yourcdn.newsiteurl.com');
你还需要通过下面语句来修改图片附件的 GUID 信息:
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://yourcdn.newsiteurl.com') WHERE post_type = 'attachment';
重置密码
如果想重置登录密码,如果嫌麻烦可直接用下面的 SQL 语句来完成:
UPDATE wp_users SET user_pass = MD5( 'new_password' ) WHERE user_login = 'your-username';
更新文章元数据
如果你的每篇文章都保持了特别的 URL ,可使用下面语句来处理:
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://www.oldsiteurl.com','http://www.newsiteurl.com');
在做任何修改之前,我们建议你对数据库做好备份后再操作。
免责声明: 本网站所发布的一切资源均来自于会员发布以及互联网收集,不代表本站立场,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则一切后果请用户自负;依据WordPress GPL开源许可协议分享,如有侵犯到您的权益,请联系我们。