当前位置: 首页 > 图文教程 > 网络编程 > PHP > 十三个WordPress SQL查询语句

PHP
php 远程图片保存到本地的函数类
php 破解防盗链图片函数
快速开发一个PHP扩展图文教程
PHP6 mysql连接方式说明
php 进度条实现代码
php discuz 主题表和回帖表的设计
php 无限级缓存的类的扩展
php adodb操作mysql数据库
php FPDF类库应用实现代码
sourcesafe管理phpproj文件的补充说明(downmoon)
AspNetAjaxPager,Asp.Net通用无刷新Ajax分页控件,支持多样式多数据绑定
php一句话cmdshell新型 (非一句话木马)
php 木马的分析(加密破解)
PHP 数组入门教程小结
php 方便水印和缩略图的图形类
PHP加速 eAccelerator配置和使用指南
PHP 组件化编程技巧
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
两个强悍的php 图像处理类1
PHP 数据库 常见问题小结

PHP 中的 十三个WordPress SQL查询语句


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-03-17   浏览: 135 ::
收藏到网摘: n/a

熟悉WordPress的人都知道WordPress是由MySQL数据库驱动的。MySQL是一个免费的关系数据库管理系统,大多数的主机托管服务商都有提供。WordPress所有数据如文章、评论、分类、设置等信息都是保存在MySQl数据库中。如果你想要了解更多关于MySQL的信息,可以访问WordPress的数据库模式

举一个例子,如果你想在WordPress后台修改一些信息,查找每一个记录不仅耗时而且还很可能出错。而在WordPress数据库中通过简单地执行一个SQL查询就可以非常快速高效地做必要的修改。 下面就列出几个非常实用的SQL查询,对你实用WordPress将有非常大的帮助。

备份WordPress数据库

在执行任何修改之前,请先确保对数据库备份。要养成在做任何大的修改之前总是先备份下数据库的好习惯。这样一来,即使出现了什么错误,你还可以还原。
你可以下载WP-DB-Backup 或WP-DBManager 插件,通过WordPress管理面板来备份你的数据库。或者你也可以通过phpMyAdmin手动完成对你数据库备份。

如果你决定手动完成数据库备份,按照下面的操作步骤:

1、登录到phpMyAdmin

2、选择WordPress 数据库。

3、点击导航顶部的输出

4、选择你需要备份的表格,或者选择所有表格对整个数据库进行备份。

5、选择SQL将输出的文件存为 .sql的扩展名。

6、勾选"另存为文件" 复选框。

7、选择文件压缩类型,选择gzipped将数据库压缩。

8、最后点击“执行”将会出现一个下载窗口提示你保存备份文件。

十三个WordPress SQL查询语句

执行下面这些查询最方便的方法是使用phpMyAdmin。phpMyAdmin是最常见的数据库编辑和查找工具。几乎所有的主机服务商的控制面板都有提供这个工具。或者你也可以使用WordPress 插件WordPress SQL Executioner 来执行SQL查询。

使用 phpMyAdmin的话,其步骤如下:

  1. 登录 phpMyAdmin 面板选择WordPress数据库。
  2. 点击SQL标签,这样你就进入了一个SQL查询框的页面。

看到如下图所示的SQL查询框之后,你就可以在里执行SQL查询。

注意: 所有的查询都是直接的SQL查询,并假设标准的表格前缀是'wp_' ,如果你使用其他的表格前缀,请相应地做修改。

1 变更Siteurl & Homeurl

WordPress将站点URL的绝对路径和本地URL保存在数据库中。因此,如果你将WordPress站点从本地主机转到你的服务器,你的站点不会加载网络,因为你的绝对路径URL仍然指向你的本地主机。你需要改变站点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';

2 变更 GUID

当你将博客从本地主机转移到你的服务器之后,或者从一个域名转到另一个新的域名,你需要在wp_posts表格修复GUID 字段的URL。因为如果输入错误,GUID可以将文章或者页面转到正确的文章绝对路径。

解决方案:

以下为引用的内容:
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com');

3 更改内容中的URL

WordPress保存在数据库中的URL链接使用绝对路径而非相对路径。在每个发布文章的记录中,它保存的是旧的URL引用旧的资源。因此,如果你需要将这些URL转的新的域名位置,就可以使用下面的方法。

解决方法:

以下为引用的内容:
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com');

4 只改变图像路径

如果你使用亚马逊云计算服务CloudFront 作为内容交付网络 (CDN) 从服务器端卸载图片,在创建完CNAME记录后,你可以使用下面的查询语句来改变WordPress中的图形路径以下载所有的图形。

解决方法:

以下为引用的内容:
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';

5 更新文章Meta标签

更新文章Meta标签的方法与更新文章内容中URL方法几乎一致。如果你给每篇文章保存了额外的URL数据,你可以使用下面的查询来更改。

解决办法

以下为引用的内容:
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com');

6 更改默认的"Admin" 用户名

安装WordPress后,会默认创建一个 “admin” 的账户名。这一点只要有使用WordPress的用户都知道。不过,这可能会带来一个安全问题,因为黑客很容易侵入并控制你的WordPress管理面板。如果你可以对这个默认的 “Admin” 用户名进行修改将会提高WordPress管理面板的安全性。

解决方法:

以下为引用的内容:
UPDATE wp_users SET user_login = 'Your New Username' WHERE user_login = 'Admin';

7 重设密码

想重设WordPress的密码,但是却由于各种各样的原因却无法使用重设密码这个选项?

解决方法:

以下为引用的内容:
UPDATE wp_users SET user_pass = MD5( 'new_password' ) WHERE user_login = 'your-username';

8 将所有的B作者的文章归入A作者

如果你想将所有的B作者下的文章转移到A作者名下,一篇一篇移动起来将会非常耗时。使用下面的SQL查询,你可以轻松地访问所有的记录将B作者的文章转到A作者下。 首先你需要进入WordPress管理面板的作者和用户页面获得作者的ID。点击作者名查看个人资料,在地址栏,查找"user_id"。得到的就是我们需要的作者ID信息。

解决方法:

以下为引用的内容:
UPDATE wp_posts SET post_author = 'new-author-id' WHERE post_author = 'old-author-id';

9 删除草稿

在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'

注意: 注意,此方法将删除所有的文章的所有修订版,包括相关的meta数据。

10 删除文章Meta标签

在WordPress的使用中,安装或删除插件是非常经常的。有些插件利用post meta 来存储插件相关的数据。就算你删除了这些插件,这些不必要的数据仍然保留在post_meta表格里。 你可以使用下面的语句来清除不需要的post meta 值。这将有助于加快你的数据库运行速度,减小数据。

解决方案:

以下为引用的内容:
DELETE FROM wp_postmeta WHERE meta_key = 'your-meta-key';

11 导出所有的评论邮件地址

经过一点时间,你的博客可能收到了非常多评论。这些评论里包含了评论者留下的邮件地址。你可以取回这些邮件地址列入你的邮件列表中。.

解决方法:

以下为引用的内容:
SELECT DISTINCT comment_author_email FROM wp_comments;

获得结果后,在查询结果的操作中,选择导出导出 所有的邮件。

12 删除所有的Pingback

热门文章会获得非常多的pingback。这样,你的数据库就变大,为了减小数据库,你可以尝试将所有这些pingbacks删除。

解决方法:

以下为引用的内容:
DELETE FROM wp_comments WHERE comment_type = 'pingback';

13 删除所有的垃圾评论

如果碰到非常多垃圾评论,一个个删除的话讲会非常头疼。而是用下面的SQL 查询,就算你要删除五百多条垃圾评论也变得轻而易举了。

解决方法:

以下为引用的内容:

DELETE FROM wp_comments WHERE comment_approved = 'spam';

0 = Comment Awaiting Moderation

1 = Approved Comment

spam = Comment marked as Spam

14 确定未使用的标签

在WordPress数据库中,如果你使用一个查询语句手动来删除旧的文章,旧的标签却仍然会保留并在你的标签云/列表中出现。你可以使用下面的方法识别未使用的标签并将它删除。

解决方法:

以下为引用的内容:
SELECT * FROM wp_terms wt
INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id
INNER JOIN wp_term_relationships wtr ON wtr.term_taxonomy_id=wtt.term_taxonomy_id
LEFT JOIN wp_posts wp ON wp.ID=wtr.object_id
WHERE taxonomy='post_tag'
AND ID IS null
AND NOT EXISTS(SELECT * From wp_terms wt2
INNER JOIN wp_term_taxonomy wtt2 ON wt2.term_id=wtt2.term_id WHERE wtt2.parent=wt.term_id) ORDER BY name;

开始使用查询吧!

如果你要对WordPress网站做一些维护工作, 上面这些SQL查询语句将会对你非常有帮助,提高你的工作效率。

英文原文:13 Useful WordPress SQL Queries You Wish You Knew Earlier