WordPress数据库常用SQL语句
提醒:在您进行任何更改之前,请务必备份您的数据库,这样即使修改错了,你仍然能够恢复。
WordPress数据库存储了站点所有信息,数据库对站点来说至关紧要,一般情况下不要折腾数据库。但是很多情况下,使用SQL语句批量修改站点内容,大大提高效率。下面的SQL语句均收集自网络,操作需谨慎。
所有的SQL语句都是假定你的数据库的前缀是"wp_" ,如果你使用不同的表前缀,请自行修改。
1、更改文章内容的URL——替换之前文章中的一些内链网址或者内容,如博客名称、网址、文章配图的URL等等。
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://www.旧网址.com', 'https://www.xiaohuboke.com');
2、修改评论者信息——例如自己换域名了、更改用户名了、又或者修改网友评论信息。
a.更改留言者所有URL
UPDATE wp_comments SET comment_author_url = REPLACE( comment_author_url, 'http://旧网址.com', 'http://新网址.com' );
b.更新留言者电子邮件地址
UPDATE wp_comments SET comment_author_email = REPLACE( comment_author_email, '旧email', '新email' );
c.更新留言者名称
UPDATE wp_comments SET comment_author = replace(comment_author, '旧名称','新名称');
3、删除所有文章的修订版——默认状态下,当您编辑在WordPress的文章,会有很多修改副本被保存。随着时间的推移,wordpress数据库将越来越多垃圾,越来越累赘。
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';
另外,WP Cleaner插件也可以清理。
4、替换评论者的敏感词汇
UPDATE wp_comments SET comment_content = REPLACE( comment_content, 'fuck', '**' );
5、删除未使用的标签——一个博客的标签不宜过多,不利于SEO。你可以通过该语句整理数据库,清理未使用的标签。
DELETE a,b,c FROM wp_terms AS a LEFT JOIN wp_term_taxonomy AS c ON a.term_id = c.term_id LEFT JOIN wp_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE c.taxonomy = 'post_tag' AND c.count = 0;
6.批量删除垃圾评论
DELETE from wp_comments WHERE comment_approved = '0';
7.手动重设密码
UPDATE wp_users SET user_pass = MD5('PASSWORD') WHERE wp_users.user_login ='用户名' LIMIT 1;
8.更改WordPress的域名
a.更改WordPress地址和首页地址
UPDATE wp_options SET option_value = replace(option_value, 'http://www.旧网址.com', 'https://www.xiaohuboke.com') WHERE option_name = 'home' OR option_name = 'siteurl' ;
b.更改文章的GUID
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.旧网址.com', 'https://www.xiaohuboke.com') ;
c.更改正文中的链接地址
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://www.旧网址.com', 'http://www.新网址.com') ;
9、修改文章作者——执行下面的SQL语句可以将作者a的文章全部转移到作者b。
UPDATE wp_posts SET post_author = 'b' WHERE post_author = 'a';
10、重设admin的用户名——为了站点安全,缓和暴力破解密码的攻击,最好把默认的管理员用户名删除或者从 admin 修改为一个更难被猜到的名字。
UPDATE wp_users SET user_login = '新的用户名' WHERE user_login = 'admin' ;
11、删除所有的Pingback
DELETE FROM wp_comments WHERE comment_type = 'pingback' ;
12、关闭旧文章的留言
我们可以在WordPress控制面板中设置XX天之后的文章关闭留言功能,但是对于一些旧文章,该功能就起不到任何作用了。我们可以使用SQL语句设定XXXX之前的文章关闭留言功能。
UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2009-01-01' AND post_status = 'publish' ;
重复提醒:在您进行任何更改之前,请务必备份您的数据库。这是一个很好的做法,始终备份您的数据库,然后才作出任何重大变化。这将确保,任何即使是出错了,你仍然能够恢复它。