因为要更换主题,想把原来的网站搬到本地进行测试,由此接触到 WordPress 搬家。这其间碰到大量问题,还好有搜索引擎的帮助。最终把这些问题一一解决,在这里写个总结。

WordPress 搬家包括 2 部分:WordPress 系统程序和 MySQL 数据库。搬家有域名目录不变只改变空间、域名目录改变空间不变和域名目录与空间都改变 3 种情况,这里讲的是域名和空间都改变的情况。前 2 种情况相对比较简单,可以参照域名和空间都改变的情况进行 WordPress 搬家。方法如下:

WordPress 系统程序

把网站根目录下的全部文件用 FTP 软件下载到本地,修改其中的 config.php 文件。注意最好以 utf-8 无 BOM 格式编辑保存,推荐使用 notepad++文本编辑器。不然可能出现 「Waring:Cannot modify header information 。」 的错误。

WordPress搬家

特别注意如果原网站或新网站安放在二级目录时,还要修改其中的.htaccess 文件。 WordPress 在安装时,会根据网站具体的目录结构产生一个.htaccess 文件。该文件与 URL 重定向有关,直接关系到网站虚拟重写目录及网页的访问是否正常。 ZCMHI 在将网站从根目录搬家到本地二级目录时,就遇到首页显示正常,但是一些虚拟目录和网页无法访问的情况。比如 localhost/zcmhi/archives/下的所有分类目录和网页都无法访问。以 WordPress 从根目录搬到二级目录为例,修改.htaccess 文件的方法为在 RewriteBase 和第二个 RewriteRule 项添加二级目录。

原网站.htaccess 文件

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ -[L]
RewriteCond %{REQUEST_FILENAME}!-f
RewriteCond %{REQUEST_FILENAME}!-d
RewriteRule ./index.php [L]# END WordPress

修改后.htaccess 文件

# BEGIN WordPress
RewriteEngine On
RewriteBase /zcmhi/
RewriteRule ^index.php$ -[L]
RewriteCond %{REQUEST_FILENAME}!-f
RewriteCond %{REQUEST_FILENAME}!-d
RewriteRule ./zcmhi/index.php [L]
# END WordPress

具体应根据实际情况进行更改。最后将所有文件上传到新的主机空间。这里指全部文件,是为了使搬家后的网站与原网站完全相同。

如果遇到后台登陆一片空白或出现 「Waring:Cannot modify header information 。」 等后台无法登陆前台无法显示的情况,比如 ZCMHI 在登陆后台时由 All in one seo pack 插件造成的错误,如图。这时可以通过 FTP 软件进入网站目录把插件或主题目录改名,比如把 plugins 改为 plugin0,themes 改为 themes0(主题无法调用时系统会恢复默认主题),登陆后台后再通过 FTP 改回来。出现这种情况的原因多为第三方插件或主题与 WordPress 不能完全兼容。

WordPress搬家

MySQL 数据库

登入原网站数据库管理界面,一般 phpMyAdmin 。进入对应的数据库,对 「结构」 项全选,点击导出 (如图),其他设置默认就行,保存到本地。

WordPress搬家

也可以使用 WP-DBmanager 插件备份数据库后下载到本地。接着用文本编辑器以 utf-8 格式打开编辑。查找原来域名,全部替换为新的域名目录。也可以在导入到新的数据库后,修改表 wp-options 中 siteurl 和 home 项为新域名。

再到新的数据库管理界面,导入数据库,注意以 utf8_general_ci 导入。

WordPress搬家

至此 WordPress 搬家基本结束,可能需要登入 WordPress 后台对一些地方进行适当调整。

一小点建议:由于安装的插件及主题可能并非为 WordPress 官方开发,因为兼容性问题在搬家过程中可能引起这样那样的问题。建议 WordPress 搬家前停用所有的插件,安装了缓存插件要清除缓存,并恢复到默认主题。在搬家结束后登陆 WordPress 后台进行还原。