有时,已经在WordPress多站点网络中创建了一个站点,但是需要将其移动到其自己的单个站点安装中。 在某些情况下可能会发生这种情况,包括:
- 该站点太大,无法包含在网络中。
- 该站点需要自己的IP地址。
- 网站所有者正在转移提供商或自己接管网站的完全管理。
在某些情况下,您可能会发现可以通过使用插件或插件组合将站点移出多站点,但是如果这样做不起作用,则需要移动相关的数据库表。 用这种方法将站点移出多站点网络是一个棘手的过程,因为它涉及在多站点数据库中隔离与该特定站点相关的数据库表。 但是,这并非不可能。
您需要什么
要遵循本教程,您需要:
- WordPress多站点的安装,带有要移至其自己的WordPress安装的子站点。
- 您要将网站移至的第二个位置。
- 对于手动移动,您将需要一个FTP客户端,一个代码编辑器并访问phpMyAdmin。
注意:您不能将主站点移出多站点网络,因为 没有它 , 该网络将无法工作 。 如果确实需要将主站点的内容移到其他地方,则建议创建一个副本,然后用虚拟站点替换原始站点的内容。 但是,您将无法移动域名,因为网络中的所有其他站点也在使用它。
使用插件从多站点迁移站点
如果您的网站没有通过插件,主题或网站设置屏幕设置太多配置,则可以使用WordPress导入器插件成功移动它。 如果站点中有窗口小部件,则可以使用“窗口小部件设置导入器/导出器”插件复制其设置。
但是,如果使用设置或选项屏幕或主题定制器添加了许多定制配置,则不会复制所有这些配置。 在这种情况下,您需要进行手动移动。
有关如何使用这些插件来移动您的网站的完整详细信息,请参阅我之前有关使用插件来移动WordPress网站的教程。 将站点从多站点网络移动到其自己的WordPress安装过程完全相同。
手动从多站点迁移站点
您要移出多站点的站点将具有三个需要从多站点网络复制的组件:
- 主题和插件文件-您可以跨它们复制或在新站点中重新安装它们
- 上传-您可以在
wp‑content/uploads/sites
的网站子目录中找到这些wp‑content/uploads/sites
- 数据库表-您不需要所有数据库表,而仅需要与此网站相关的表
注意:如果您的多sites
网络是在WordPress 3.5之前创建的,那么您将没有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的格式应为http://mynetwork.com/wp-admin/network/site-info.php?id=XX 。
XX
是您的站点的ID,将是包含其文件的文件夹的名称,以及其数据库表名称的前缀。
从网络导出站点表
由于您仅移动一个子站点,而不移动整个安装,因此不需要整个数据库的内容。
在PhpMyAdmin中 ,单击“ 导出”选项卡。 然后找到与您要导出的站点有关的表。 它们将以wp_XX_
,其中XX
是您的站点的ID。 一个例子如下所示。
选择与您的子站点有关的所有表,然后将其导出。
注意:WordPress Multisite将与网络用户有关的所有数据存储在wp_users
和wp_usermeta
表中:它不会为每个站点创建单独的数据。 如果您要从网络上复制很多站点上的用户,那么您可能还希望导出这些表,将它们导入新站点并在管理屏幕中编辑用户以删除所有这些表。与新网站相关。 但是,如果您的站点只有一个或两个用户,则在新站点上重新创建它们会更容易。 有关Multisite和数据库表的更多信息,请参阅WordPress数据库和Multisite上的本教程。
编辑数据库表
为已下载到您的计算机上的sql
文件制作一个副本,并为其命名,以告诉您它是什么(例如,将copy
添加到其名称中)。 在代码编辑器中将其打开。
编辑链接
将多站点网络中站点域的所有实例更改为其新的单个站点域。 例如,如果您的站点位于http://network.com/mysite
,则将其更改为http://mysite.com
。 如果您的网络使用子域,则需要更改http://mysite.network.com
所有实例。 如果这样做,建议您也检查子目录版本,以防万一。 保存文件。
注意:如果您的站点映射到的域不是您要移动到的域,则也需要用新域替换该域。 在这里非常小心地踩一下,并保留备份!
编辑表引用
新的单个站点安装中的数据库表没有站点ID的前缀,因此您需要删除它们。 在您的sql
文件中,将wp_XX_
所有实例替换为wp_
,其中XX
是您的站点ID。
现在保存sql
文件。
在新位置安装WordPress并创建数据库
在phpMyAdmin中,在新站点的位置中创建一个新数据库,然后以常规方式安装WordPress。
将文件上传到新站点
确定子站点使用的插件,然后通过“ 插件”屏幕将其安装在新的WordPress站点中,或者从您对旧站点的备份中上传它们。
对您的网站使用的所有主题执行相同的操作-将它们从备份复制到新的独立WordPress安装的wp-content/themes
目录中,或者只是重新安装它们。
将上传内容从旧站点复制到新站点:
- 如果网络是在WordPress 3.5之后创建的,它将在
wp-content/uploads
具有一个sites
文件夹。 找到具有您站点ID的子文件夹,并将其内容上载到新站点中的wp-content/uploads
文件夹。 - 如果网络较旧,并且具有
blogs.dir
文件夹,则该文件夹还将包含带有您站点ID的文件夹。 然后将有一个名为files
的子files
夹。 将files
夹的内容复制到新站点中的wp-content/uploads
文件夹。
注意:您可能需要删除WordPress在新的uploads
文件夹中创建的所有文件夹,以避免发生冲突。
完成所有这些操作后,激活所有主题和插件。
将表导入到新数据库
现在,您已经安装了主题和插件,您需要导入数据库表。
删除现有表
从旧站点上载表格之前,您需要删除WordPress已添加到新站点的重复表。
在phpMyAdmin中,从数据库中删除以下表:
-
wp_commentmeta
-
wp_comments
-
wp_links
-
wp_options
-
wp_postmeta
-
wp_posts
-
wp_terms
-
wp_term_relationships
-
wp_term_taxonomy
屏幕快照显示了我的数据库,其中仅选择了那些表:
选择它们,然后单击“ 与选定项:”下拉框,然后选择“ 放置” 。 出现提示时,点击Go 。
注意:请勿删除 wp_usermeta
或 wp_users
表,除非您还选择了从网络上复制这些表(请参见上文)。
上载数据库表
接下来上传您已编辑的数据库:
- 单击导入选项卡。
- 单击选择文件按钮。
- 选择您已编辑的sql文件,然后单击选择或确定 。
- 点击Go按钮。
- 片刻之后(取决于数据库的大小),您将看到一条消息,告诉您上传已成功完成。
最后步骤
清除浏览器的缓存。 如果浏览器已缓存旧站点中的内容,则可以避免出现任何问题。
现在登录到远程站点的WordPress管理员。 如果在用户表之间移动,则登录详细信息将与旧站点相同,但是如果没有,则与在新位置安装WordPress时指定的登录详细信息相同。
访问“ 永久链接”屏幕,然后重新打开漂亮的永久链接。
检查您所有的链接都工作正常,并且小部件和插件的行为正常。 如果不是这样,您可以使用所需的备份来逐步执行该过程,或者只是在新站点内设置插件和小部件。
从多站点网络中删除站点
一旦您对一切都能正常运行感到完全满意,请从多站点安装中删除该站点。 我建议将其保留一周左右,以防您发现任何尚未移动的东西。 同时,您可以使用插件或在CPanel中将旧站点的域配置为映射到新站点。
! 这是一个漫长而又稍微复杂的过程,但是您已经完成了。
摘要
将站点从WordPress Multisite迁移到其自己的安装中不是您可以快速完成的操作,也可以做得很不周全,但这是有可能的,而我已经做了几次。 如果您按照上述步骤操作,并确保有备份以防万一,那么您应该会发现它可以顺利运行。