这可能有点乏味,但希望这会有所帮助。从一个环境到另一个环境的变化越小,这个过程的痛苦就越小。特别是,如果域、站点id和文件路径保持不变,则此过程的痛苦就会减少。
这篇文章假设你有一些数据库管理方面的知识。这不是一个完整的步骤,因为您应该搜索论坛,并可能创建一个特定于您遇到问题的任何步骤的线程,例如,如果您需要导出数据库表的帮助。
最重要的是backup your entire database and files 对于本地开发人员站点和新位置,以防出现问题。预计会出现问题。如果没有,请感到惊喜。
移动主题文件应该非常简单。Upload your theme files 转到wp内容/主题目录,并像往常一样激活它。我假设这是所有博客都可以访问的共享主题。
Upload plugin files 到新位置的wp内容/插件。暂时不要激活它们。
请注意,您正在迁移的博客专有的任何内容都将位于如下目录中wp-content/blogs.dir/2/files
其中2是站点id。如果可以在新位置维护此站点id,则在迁移到新位置后应有助于将数据库中的冲突降至最低。否则,必须更新数据库以反映新路径。
你需要export the multisite tables related to the blog 您正在尝试将它们迁移并导入到新位置。您必须编辑存储与正在迁移的博客相关数据的表。确保这些表的前缀在新位置相同。
例如,您博客的wp\\u blogs表包含允许WordPress multisite识别和使用您博客的博客id、站点id、域和路径。编辑任何不再正确的内容以反映新位置,但在尝试这样做之前,请阅读本文的其余部分。
看见Multisite Table Overview
到migrate your WordPress and plugin settings for the blog to be transfered, 您需要在本地停用所有插件,然后导出site specific tables (codex参考),包括您的插件。将这些表导入新位置的数据库。
确保新位置使用与要导入的表相同的数据库前缀。前缀将包含您博客的站点id,如下所示wp_2_options, wp_2_posts, wp_2_postmeta
.
请参见Exploring WordPress Multisite by Lisa Sabin-Wilson
我假设您知道如何通过phpmyAdmin或使用终端中的mysqldump命令导入/导出。这有点超出了本文的范围,但这里有一个导出示例应该会有所帮助。
从…起How do you mysqldump specific table(s)? (为了更加清晰,对语法进行了略微编辑。):
如果要从名为mydb的数据库中转储表t1、t2和t3
mysqldump -u <username> -p <password> mydb t1 t2 t3 >
mydb_tables.sql
在激活新站点上的插件之前,请转到admin cp中的permalink设置并保存设置,以将数据库文件更新到新站点url。激活你的插件,看看是否有任何问题。
您可能遇到的一个问题是表中的数据序列化。
“[……]对旧域名或位置的引用将保留在数据库中,这可能会导致链接或主题显示出现问题。
如果对整个数据库进行搜索和替换以更改URL,则可能会导致数据序列化问题,因为某些主题和小部件存储的值标记了URL的长度。“”When Your Domain Name or URLs Change
请记住,数据序列化也可能导致与插件相关的数据库表发生冲突。使用database search and replace script 在之前的codex链接中推荐。如果数据库中只有几个序列化实例,您可以通过phpMyAdmin或任何您管理数据库的首选项手动编辑它们。
您可能会遇到的另一个问题是,需要更新存储在数据库表中的任何不正确的文件路径,以反映新的位置。媒体目录或插件使用的目录可能会出现这种情况,具体取决于插件的设计方式。同样,您需要使用搜索和替换脚本来确保在更新文件路径时没有序列化冲突。或者,您可以浏览表并手动更新它们。