大多数使用 WordPress 搭建的网站,其后台都是 MySQL 数据库,经常我们需要定制 WordPress 的功能,这里我们列表 10 个最有用的 WordPress 的数据库查询,你需要一个数据库的管理工具,例如
大多数使用 WordPress 搭建的网站,其后台都是 MySQL 数据库,经常我们需要定制 WordPress 的功能,这里我们列表 10 个最有用的 WordPress 的数据库查询,你需要一个数据库的管理工具,例如 phpMyAdmin 或者 Navicat 等来执行这些 SQL 语句。
1. 将所有文件的作者改为另外一个用户
在修改之前,你先要知道两个不同用户的 ID,你可以在 WP 后台的 Author & User 页面中找到这个 ID,或者在查看用户信息时点击用户名的链接,地址栏中出现的 user_id 对应的值就是用户ID,然后运行以下命令进行修改:
UPDATE wp_posts SET post_author = 'new-author-id' WHERE post_author = 'old-author-id';
2. 修改默认管理员 admin 的名称
WP 默认安装会创建一个名为 admin 的管理员帐号,你可以修改这个帐号的名称:
UPDATE wp_users SET user_login = 'Your New Username' WHERE user_login = 'Admin';
3. 删除修订版 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'
4. 更改 GUID
在进行博客移植时,你需要修复 wp_posts 表中的 URL 里的 GUID 信息,这是非常关键的,因为 GUID 用于将 URL 路径与文章信息对应起来:
UPDATE wp_posts SET guid = REPLACE (guid, 'http://img.558idc.com/uploadfile/allimg/210707/160923H53-0.jpg', 'http://www.newsiteurl.com');
5. 更改 Siteurl & Homeurl
当你将网站从本地移到真正的服务器,网站并无法使用,因为完整的路径依然指向 localhost,你需要修改网站的 URL 和首页 URL:
UPDATE wp_options SET option_value = replace(option_value, 'http://img.558idc.com/uploadfile/allimg/210707/160923H53-0.jpg', 'http://www.newsiteurl.com') WHERE option_name = 'home' OR option_name = 'siteurl';
6. 删除 Pingback 数据
受欢迎的文章会收到大量的 pingback 信息,这会让数据库的体积庞大,可以使用下面 SQL 语句删除:
DELETE FROM wp_comments WHERE comment_type = 'pingback';
7. 更改图片路径
如果你使用 CDN 来处理图片访问,在创建完 CNAME 记录后,你可通过下面查询来修改所有图像的路径:
UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="http://img.558idc.com/uploadfile/allimg/210707/160923H53-0.jpg', 'src="http://yourcdn.newsiteurl.com');
你还需要通过下面语句来修改图片附件的 GUID 信息:
UPDATE wp_posts SET guid = REPLACE (guid, 'http://img.558idc.com/uploadfile/allimg/210707/160923H53-0.jpg', 'http://yourcdn.newsiteurl.com') WHERE post_type = 'attachment';
8. 标出无用的标签
删除文章时并不会保证删除对应的标签,你必须手工来做这个事情,下面这个查询可让你找出那些没有用到的标签:
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;
9. 重置密码
如果想重置登录密码,如果嫌麻烦可直接用下面的 SQL 语句来完成:
UPDATE wp_users SET user_pass = MD5( 'new_password' ) WHERE user_login = 'your-username';
10. 更新文章元数据
如果你的每篇文章都保持了特别的 URL ,可使用下面语句来处理:
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://img.558idc.com/uploadfile/allimg/210707/160923H53-0.jpg','http://www.newsiteurl.com');
在做任何修改之前,我们建议你对数据库做好备份后再操作。