利用wordpress搭建个人博客比较方便,有时候会涉及到博客内容的批量变更,本文分享几个有效的sql语句来方便的进行内容更新。
数据库备份
在做具体的修改以前,建议先备份数据库,phpMyAdmin备份步骤如下:
- Login to your phpMyAdmin.
- Select your WordPress database.
- Click on Export at the top of the navigation.
- Select the tables you want to backup, or select all tables to backup the whole database.
- Select SQL to export as .sql extension.
- Check the "Save as file" checkbox.
- Choose compression type, select gzipped to compress the database to a smaller size.
- Finally click Go, and a download window will prompt you to save your backup database file.
实用SQL语句
变更博客网址 Siteurl & Homeurl
1 | 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'; |
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';
变更博文归属GUID
1 | UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com'); |
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com');
变更博文中的URL引用
1 | UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com'); |
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com');
变更博文中的图片加载引用
1 2 | UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="http://www.oldsiteurl.com', 'src="http://yourcdn.newsiteurl.com'); UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://yourcdn.newsiteurl.com') WHERE post_type = 'attachment'; |
UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="http://www.oldsiteurl.com', 'src="http://yourcdn.newsiteurl.com'); UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://yourcdn.newsiteurl.com') WHERE post_type = 'attachment';
变更博文Meta信息中的URL引用
1 | UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://www.oldsiteurl.com','http://www.newsiteurl.com'); |
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://www.oldsiteurl.com','http://www.newsiteurl.com');
变更默认的管理员"Admin"用户名
1 | UPDATE wp_users SET user_login = 'Your New Username' WHERE user_login = 'Admin'; |
UPDATE wp_users SET user_login = 'Your New Username' WHERE user_login = 'Admin';
密码重置
1 | UPDATE wp_users SET user_pass = MD5( 'new_password' ) WHERE user_login = 'your-username'; |
UPDATE wp_users SET user_pass = MD5( 'new_password' ) WHERE user_login = 'your-username';
变更博文归属(从作者B到作者A)
首先需要获得两个作者的ID,可以通过管理员面板来浏览作者的详细信息,此时查看浏览器地址栏中的链接,寻找"user_id=?"
1 | UPDATE wp_posts SET post_author = 'new-author-id' WHERE post_author = 'old-author-id'; |
UPDATE wp_posts SET post_author = 'new-author-id' WHERE post_author = 'old-author-id';
删除博文修订记录
1 2 3 4 | 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' |
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'
删除博文指定的Meta信息
1 | DELETE FROM wp_postmeta WHERE meta_key = 'your-meta-key'; |
DELETE FROM wp_postmeta WHERE meta_key = 'your-meta-key';
收集评论的Email地址
1 | SELECT DISTINCT comment_author_email FROM wp_comments; |
SELECT DISTINCT comment_author_email FROM wp_comments;
删除博文的Pingback
1 | DELETE FROM wp_comments WHERE comment_type = 'pingback'; |
DELETE FROM wp_comments WHERE comment_type = 'pingback';
删除所有的垃圾评论
- 0 = Comment Awaiting Moderation
- 1 = Approved Comment
- spam = Comment marked as Spam
1 | DELETE FROM wp_comments WHERE comment_approved = 'spam'; |
DELETE FROM wp_comments WHERE comment_approved = 'spam';
删除没有使用的Tags
1 2 | SELECT * From wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id WHERE wtt.taxonomy='post_tag' AND wtt.count=0; |
SELECT * From wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id WHERE wtt.taxonomy='post_tag' AND wtt.count=0;
喜欢,不错
这个可以用来批量更新文章内容,同时也可以用来优化数据库!