wordpress知识库
网站首页 > 知识库 > wordpress知识 >

手动将子站点从wordpress多站点迁移到单个站点

2018/07/02

将站点从wordpress多站点网络迁移到单个站点的最后一种方法是手动迁移它。这不会花费您任何费用,但只有在您觉得访问phpMyAdmin和编辑数据库导出文件时才应该这样做。

要移出多站点的站点将包含需要从多站点网络复制的三个组件:

  • 主题文件和插件文件-您可以复制这些文件,也可以在新站点中重新安装它们
  • 上传-您可以在wp-content/uploads/sites的子站点子目录中找到这些上传
  • 数据库表-您不需要所有数据库表,而只需要与此站点相关的数据库表

注意:如果您的多站点网络是在wordpress 3.5之前创建的,则不会有站点文件夹。相反,您将在wp-content中有一个blogs.dir文件夹,其中包含子网站的所有上传文件。这将包含您要迁移的站点的编号文件夹,您可以改为复制该文件夹。

首先备份

在进行迁移之前,最好先备份多站点安装。使用您喜欢的备份插件,或者如果您的提供商允许您,则使用您的托管界面创建备份- Kinsta执行定期备份,您还可以创建手动备份。

您将使用此备份将相关文件复制到您的新站点,如果您遇到任何问题,它还可以让您高枕无忧。

在多站点网络中查找子网站的ID

网络中的每个站点都有其自己的唯一ID。这用于标识其在wp-content/uploads/sites目录中的文件夹,并标识该站点的数据库表。

转到“网络管理员”>“站点”,然后选择要迁移的站点的“编辑”选项。

网络管理中的“站点”屏幕

wordpress带您访问的URL将为您提供该站点的ID。URL的格式应为http://mynetwork.com/wp-admin/network/site-info.php?id=XX。

XX是站点的ID,将是包含其文件的文件夹的名称,以及其数据库表名称的前缀。

将主题和插件文件从wordpress Multisite迁移到单个站点

现在确定子站点使用的wordpress插件,并通过“插件”屏幕将它们安装在新的wordpress站点中,或者从您为旧站点创建的备份中上传它们。将它们复制到新站点中的wp-content/plugins。

您可以通过转到子网站中的“插件”屏幕来了解正在使用哪些插件。包括任何网络激活的插件。

多站点网络子站点中的“插件”屏幕

对你的主题做同样的事情-将其从备份复制到新的单站点wordpress安装的wp-content/themes目录,或者重新安装它。

将上载从wordpress多站点子站点迁移到单个站点

如果网络是在wordpress 3.5之后创建的,它将在wp-content/uploads中有一个sites文件夹。找到包含子网站ID的子文件夹,并将其内容上传到新网站中的wp-content/uploads文件夹。

如果网络较旧且具有blogs.dir文件夹,则该文件夹还将包含一个包含您站点ID的文件夹。在其中,您会找到一个名为“files”的子文件夹。将files文件夹的内容复制到新站点的wp-content/uploads文件夹。

注意:您可能需要删除wordpress在新上传文件夹中创建的任何文件夹,以避免任何冲突。

您现在已经安装了所有文件。您无需激活它,因为跨数据库迁移将复制任何设置,包括插件和主题激活和设置。

从多站点网络导出子站点的表

由于您只移动一个子站点,而不是整个安装,因此您不需要整个数据库的内容。

为您的多站点网络打开phpMyAdmin。单击“导出”选项卡。

多站点网络比单个站点具有更多的表-每个站点都有额外的一组表。查找与要导出的站点相关的表格。它们将以wp_XX_开头,其中XX是您站点的ID。

选择与子网站相关的所有表,然后向下滚动到“已选择:”框。

选择和导出数据库表

单击它并选择导出。

在下一个屏幕上,将导出方法保留为“快速”,然后单击“转到”按钮。

快速导出方式

编辑数据库表

复制已下载到计算机的SQL文件,并为其指定一个名称,以告知您它是什么(例如,通过在其名称中添加“copy”)。在代码编辑器中打开它。

您需要编辑两件事:链接和表引用。

从链接开始。您需要将多站点网络中站点域的所有实例更改为其新的单站点域(如果在新站点工作时使用临时域,则更改为临时域)。例如,如果您的网站处于http://network.com/mysite状态,请将其更改为http://mysite.com。

如果您的网络使用子域,则需要更改http://mysite.network.com的所有实例。如果您这样做,我建议您也对子目录版本进行检查以防万一。保存您的文件。

其次,新的单站点安装中的数据库表没有站点ID的前缀,因此需要删除这些前缀。在SQL文件中,将wp_XX_的所有实例替换为wp_,其中XX是站点ID。

现在保存SQL文件。

将数据库表从多站点中的子站点迁移到单个站点

编辑SQL文件后,需要导入数据库表。首先删除新wordpress安装中的所有现有表。

打开新站点的phpMyAdmin。从新站点的数据库中选择除wp_users表和wp_usermeta表之外的所有表。

单击“已选择:”下拉框,然后选择“删除”。当下一个屏幕上出现提示时,单击“开始”。

接下来,您需要上传已编辑的数据库:

  1. 单击“导入”选项卡。
  2. 单击“选择文件”按钮。
  3. 选择已编辑的SQL文件,然后单击“选择”或“确定”。
  4. 单击“开始”按钮。

过了一会儿(取决于数据库的大小),您将看到一条消息,告知您上传已成功完成。如果您的数据库很大,这可能需要一段时间。

最后步骤

你还没有完全完成。接下来,清除浏览器的缓存。这样可以避免浏览器缓存旧站点中的内容时可能遇到的任何问题。

现在登录到新站点的wordpress管理员。如果您移动了用户表,您的登录详细信息将与旧站点相同,但如果您没有移动,这些将是您在新位置安装wordpress时指定的任何内容。

检查您的所有链接是否正常工作,以及小部件和插件是否正常运行。如果没有,您可以退后一步完成该过程,在需要的地方使用备份,或者只是在新站点中进行任何调整。

一旦您对一切正常感到满意,请从多站点安装中删除该站点。我建议你离开这个一周左右,以防你发现任何没有移动的东西。在此期间,您需要移动域(如下所述)。

若要从网络中删除子网站,请转到“网络管理员”>“站点”。找到该网站,然后单击其名称下方的“删除”链接。

删除多站点网络中的站点

这是一个漫长而略显复杂的过程,但你已经做到了。