移动WordPress:将站点移动到多站点网络
大约一年前,我发生了托管灾难。 我的托管服务提供商的服务器被黑客入侵,他们花了一个多星期的时间才能确定问题所在并加以解决。
同时,我客户的网站都重定向到了约会网站,而我接到的电话要求我立即解决问题。
我必须快点行动。 但是,我决定将站点迁移到一个新服务器(我可能会添加一个新的托管服务提供商)上,而不是简单地将它们移到新服务器上,如果可以的话,我可以更轻松地再次移动所有站点我需要 因此,我将自己安装了WordPress的许多站点移到了我现有的Multisite网络中,该网络已经移到了新服务器上。
将单个站点移动到多站点网络比将其移动到全新的单个站点安装要复杂得多,但这并非不可能。 在本教程中,我将向您展示两种方法:使用插件和手动。
您需要什么
要遵循本教程,您需要:
- 带有现有站点的WordPress安装。
- 您是网络管理员的多站点网络。
- 对于手动移动,您将需要一个FTP客户端,一个代码编辑器并访问phpMyAdmin。
使用插件将站点移至多站点
如果您的网站没有通过插件,主题或网站设置屏幕设置太多配置,则可以使用WordPress导入器插件成功移动它。 如果站点中有窗口小部件,则可以使用“窗口小部件设置导入器/导出器”插件复制其设置。
但是,如果使用设置或选项屏幕或主题定制程序添加了许多定制配置,则不会复制所有这些内容。 在这种情况下,您需要进行手动移动。
有关如何使用这些插件来移动您的网站的完整详细信息,请参阅我之前有关使用插件来移动WordPress网站的教程。 将站点移至多站点网络的过程与将单个站点移至多站点网络的过程完全相同。
手动将站点迁移到多站点
您要移入多站点的站点将具有三个需要从旧站点复制的组件:
- 主题和插件文件-如果尚未安装它们,则可以跨它们复制或将它们安装在网络中
- 上传-您会在旧站点的
wp-content/uploads
中找到这些文件,而在多站点安装中,则需要进入wp-content/uploads/sites/XX
,其中XX
是网络中新站点的ID (不久将有更多) - 数据库表
注意:如果您要将网站移入的多站点网络是在WordPress 3.5之前创建的,则该sites
将没有sites
文件夹。 相反,您将在wp-content
拥有一个blogs.dir
文件夹,其中包含子blogs.dir
所有上传文件。 这将为您正在创建的网站提供一个带编号的文件夹,您可以将文件复制到其中 。 我将在下面详细介绍。
首先备份
在执行此类操作之前,最好备份要移动的站点和多站点安装。 如果您希望手动工作,请使用首选的备份插件,或者结合使用FTP和phpMyAdmin。
您将使用此备份将相关文件复制到新站点,并且在遇到任何问题时也可以放心。
在网络中创建一个新站点
将旧站点迁移到多站点之前,需要在网络中创建一个新的空站点。 稍后,您将把旧站点中的所有内容导入到新站点中。
通过以常规方式创建站点,方法是:转到网络管理>站点 ,单击添加新 ,然后输入新站点的详细信息。
在多站点网络中查找新站点的ID
多站点网络中的每个站点都有自己的唯一数字ID。 它用于在wp-content/uploads/sites
目录(如果您的多wp-content/uploads/sites
网络较旧,请参见wp-content/blogs.dir
标识其文件夹,并用于标识该站点的数据库表。
通过转到网络管理>站点 ,然后为刚创建的站点选择“ 编辑”选项来查找。 WordPress带您进入的URL将为您提供站点的ID。 该URL的格式应为https://mynetwork.com/wp-admin/network/site-info.php?id=XX
。
XX
是您的站点的ID,将是包含其文件的文件夹的名称,以及其数据库表名称的前缀。
将文件上传到新站点
确定您的旧站点使用的插件,然后通过“ 插件”屏幕将它们安装(如果尚未安装)在WordPress网络中,或者将它们从旧站点备份中上传到wp-content/plugins
。
对您的站点使用的所有主题执行相同的操作-将它们从备份复制到网络的wp-content/themes
目录中,或者只是重新安装它们。
注意:主题和插件存储在一个多站点网络中所有站点的一个位置,您无需将它们存储在特定于新站点的某个位置。
将上载内容从旧站点复制到新站点。 您需要复制的文件位于旧站点的wp-content/uploads
中。 您将其上传到何处取决于网络的年代:
- 如果网络是在WordPress 3.5之后创建的,它将在
wp-content/uploads
具有一个sites
文件夹。 找到带有您站点ID的子文件夹,然后将wp-content/uploads
文件夹wp-content/uploads
从旧站点wp-content/uploads
到该文件夹。 - 如果网络较旧,并且具有
blogs.dir
文件夹,则该文件夹还将包含带有您站点ID的文件夹。 然后将有一个名为files
的子files
夹。 将wp-content/uploads
文件夹wp-content/uploads
从您的旧站点files
到files
夹。
注意:您可能需要在 sites
或 blogs.dir
文件夹中 删除WordPress为新站点创建的任何文件 夹,以避免发生冲突。
完成所有这些操作后,**新站点中的所有主题和插件。
导出旧站点表
WordPress Multisite为网络中的每个站点使用单独的数据库表。 例如,它不是将您网站的帖子存储在wp_posts
,而是将其存储在wp_XX_posts
,其中XX
是您网站的ID。
但是,它没有为用户数据使用单独的表,而是将其存储在整个网络的一个wp_users
和wp_usermeta
表中。
这意味着您需要跨旧站点复制旧站点中的所有表,除了两个用户表外,还需要更改要复制的文件的名称。 不幸的是,您必须使用WordPress管理员屏幕在新站点中手动创建用户。
有关Multisite和数据库表的更多信息,请参阅WordPress数据库和Multisite上的本教程。
在旧站点的PhpMyAdmin中,单击“ 结构”选项卡。 然后选择除wp_users
和wp_usermeta
之外的所有表。 一个例子如下所示。
单击“ 与选定项:”下拉框,选择“ 导出” ,然后选择“ 转到” 。 这会将带有这些表内容的sql
文件下载到您的计算机上。
新增使用者
如上文所述,您无法复制wp_users
和wp_usermeta
表,因为它们将在多wp_usermeta
网络中复制。
在开始导入刚刚下载的表之前,请在新站点中设置与旧站点相同的用户。 请注意,他们在多站点网络的数据库中将具有与旧站点中不同的ID,这可能会导致为作者分配帖子时出现一些错误。 您将需要在最后纠正此问题,稍后将对此进行介绍。
编辑数据库表
为已下载到您的计算机上的sql
文件制作一个副本,并为其命名,以告诉您它是什么(例如,将copy
添加到其名称中)。 在代码编辑器中将其打开。
编辑链接
将多站点网络中站点域的所有实例更改为其新的多站点域。 例如,如果您的网站位于http://mysite.com
,则将其更改为http://network.com/mysite
。 如果您的网络使用子域,则需要将其更改为http://mysite.network.com
。 保存文件。
编辑表引用
新的多站点站点中的数据库表将需要站点ID的前缀。 在您的sql
文件中,将wp_
所有实例替换为wp_XX_
,其中XX
是您的站点ID。
现在保存sql
文件。
将表导入到新数据库
现在,您已经安装了主题和插件并导出了数据,您需要将数据库表导入到Multisite网络中。
删除现有表
从旧站点上载表格之前,您需要删除WordPress已添加到新站点的重复表。
在phpMyAdmin中,删除所有以wp_XX_
为前缀的表,其中XX
是您的站点ID。 这些将包括以下内容,但也可能包括由插件创建的表:
-
wp_XX_commentmeta
-
wp_XX_comments
-
wp_XX_links
-
wp_XXoptions
-
wp_postmeta
-
wp_posts
-
wp_terms
-
wp_term_relationships
-
wp_term_taxonomy
选择这些表(以及由插件创建的任何wp_XX_
表),单击“ 与选定项:”下拉菜单,选择“ 删除” ,然后选择“ 是” 。
下面的示例包括一个由插件创建的额外表:
重要说明:如果您的旧站点具有由插件创建的数据库表,则在导入新数据库之前,必须在网络上安装这些相同的插件。 导入将包括这些表,除非已安装插件,否则这些表将不起作用。
上载数据库表
接下来上传您已编辑的数据库:
- 单击导入选项卡。
- 单击选择文件按钮。
- 选择您已编辑的sql文件,然后单击选择或确定 。
- 点击Go按钮。
- 片刻之后(取决于数据库的大小),您将看到一条消息,告诉您上传已成功完成。
最后步骤
清除浏览器的缓存。 如果浏览器已缓存旧站点中的内容,则可以避免出现任何问题。
现在登录到远程站点的WordPress管理员。 如果在用户表之间移动,则登录详细信息将与旧站点相同,但是如果没有,则与在新位置安装WordPress时指定的登录详细信息相同。
访问新网站的“ 永久链接”屏幕,然后重新打开漂亮的永久链接。
查看您的“ 帖子”主屏幕,并检查已将哪些作者分配给他们-这很有可能是错误的。 您可以批量更改:
- 选择应分配给给定作者的所有帖子。
- 单击批量操作并编辑。
- 单击应用。
- 在出现的窗格中,从下拉框中选择正确的作者。
- 单击更新。
屏幕快照中显示了编辑窗格:
如果您的网站有页面和自定义帖子类型,请对它们重复以上操作。
检查您所有的链接都工作正常,并且小部件和插件的行为正常。 如果不是这样,您可以使用所需的备份来逐步执行该过程,或者只是在新站点内设置插件和小部件。
设置域映射
如果要保留在单个站点安装中用于站点的域名 ,则可以使用域映射插件来执行此操作。 安装插件,为您的网络**它,然后按照插件给出的说明进行设置。 这将涉及更改您的域的DNS设置。
摘要
从自己的安装中将站点移至WordPress多站点网络不是您可以快速完成的操作,或者可能做得很不周全,但这是有可能的,而且我已经做了几次。 只需按照此处给出的步骤进行操作,并确保在遇到任何问题时进行备份,并且您会发现备份对您来说很顺利。