13个你希望早点知道的实用WordPress SQL查询语句[译]
作者:子乌 来源:子乌blog 时间:2010-02-28 12:48:00
作者: Terrance
译者:Sheneyan(子乌)
时间:2010.2.6
英文原文:13 Useful WordPress SQL Queries You Wish You Knew Earlier
子乌注:嗯,这篇文章算是蛮实用的一篇WordPress的底层操作手册,可以让你迅速找到你想做的事情而不是在WordPress的复杂语境里迷路,随手翻译之,并存档备用。
WordPress的用户应该都了解,WordPress是基于MySQL数据库。然而,如果你只是刚刚从我们这里知道这一点,下面这些是你应该了解的。MySQL是一个免费的关系型数据库管理系统 ,绝大多数web服务器都支持它。所有的WordPress数据,如posts、评论、设置,都存储于MySQL数据库中。如果你希望对MySQL了解更多,你可以去WordPress的数据库描述看看。
举个例子,如果你需要改WordPress中的一些全局的信息,那你得在每条记录里穿梭,耗费你大量的时间并且得面对发生人工错误的可能。而直接在你的WordPress数据库中简单地运行一条SQL语句,你可以让上面所说的工作变得轻松而有效率。
而下面就是一些能够在你使用WordPress时提供帮助的SQL语句。
备份你的WordPress数据库
在你对你的数据库做任何操作之前(除非你对自己的SQL执行结果很有信心),请务必备份你的数据库。在你做出任何重大的改变之前备份一下数据库是一个良好的习惯。这保证了无论数据库发生了何种错误,你总是能够将它恢复。
你可以下载WP-DB-Backup或WP-DBManager插件,它们能够让你在你的WordPress面板中备份你的数据库。或者,你也可以通过phpMyAdmin来手动备份。
嗯,如果你决定手动备份你的WordPress数据库,跟着我做底下这些步骤:
登录你的phpMyAdmin;
选择WordPress数据库;
单击顶部导航栏里的Export(导出);
选择你想备份的表,或者选择所有的表来备份整个数据库;
导出选项选择SQL,导出为.sql后缀的文件;
勾选复选框“Save as file(另存为文件)” ;
选择compression type(压缩格式),选择gzipped,这样备份文件会小一些;
最后点一下Go(确定?OK?执行?),会跳一个下载窗口出来提示你保存你的备份数据库文件。
针对WordPress的13条SQL语句
运行下面提供的SQL语句的简单方法当然就是使用phpMyAdmin(一般来说,有装WordPress的服务器应该都有phpMyAdmin吧?)。phpMyAdmin是一个最常用的MySQL数据库查询与编辑工具。绝大多数web服务器的控制面板都有提供这个选项。这里也有一个名为WordPress SQL Executioner的WordPress插件允许你执行你的SQL语句。
依照以下的步骤来使用phpMyAdmin:
登录phpMyAdmin面板并选择你的WordPress数据库。
单击SQL栏,进入一个带有SQL查询框的页面。
你可以在如下图所示的这个SQL查询框中输入你的SQL语句。
注:所有的语句都是单纯的SQL查询,并且假定你使用的是标准的表前缀“wp_”。 如果你使用不同的表前缀,请自行修改相应的语句。
修改站点链接(Siteurl)和首页链接(Homeurl)
WordPress将站点链接与首页链接的绝对路径存储于数据库中。因此,如果你将你的WordPress站点从本地主机复制到服务器上,你的站点将无法正确运行。这是因为绝对路径依然是指向你的本地主机。你需要将站点链接与首页链接修改以使站点跑起来。
解决:
UPDATE wp_options SET option_value = replace(option_value, 'http://www.旧的地址.com', 'http://www.新的地址.com') WHERE option_name = 'home' OR option_name = 'siteurl';
修改GUID
当你将你的blog从本地主机移植到你的服务器或者从其他域名转移到新的域名,你需要修改表wp_posts中字段GUID的网址。如果填写错误将会造成严重错误,因为GUID用于将你的post或者页面解析为正确的链接地址。
解决:
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com');
修正内容中的URL
当存储数据库的时候,WordPress将使用URL链接的绝对地址而非相对链接。因此你需要修正所有将指向新域名地址的链接。
解决:
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com');
只修改图片路径
如果你决定使用Amazon CloudFront作为你的内容分发网络(CDN)以减少你服务器上图片的分发量。当你创建完成你的CNAME记录,你能够使用下面的SQL语句来修改WordPress中所有图片地址,让你的图片从Amazon CloudFront中加载。
解决:
UPDATE wp_posts SET post_content = REPLACE(post_content, 'src="http://www.oldsiteurl.com', 'src="http://yourcdn.newsiteurl.com');
同时你也需要使用以下SQL更新图片附件的GUID:
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://yourcdn.newsiteurl.com') WHERE post_type = 'attachment';
更新post meta
更新post meta的做法与更新post内容中的链接几乎是一样的写法。如果你在每个post中储存了额外的链接数据,你可以使用以下的语句来批量修改。
解决:
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://www.oldsiteurl.com','http://www.newsiteurl.com');