使用技巧

如何将WordPress多站点还原为一个站点

WordPress Multisite有很多好处。它使您只需安装一个WordPress即可创建所需数量的网站。它允许在这些站点之间建立连接,共享数据和用户,并且通过向用户出售网络上的站点,为您提供了一种通过WordPress安装获利的方法。

但是有时候,单站点WordPress安装可能是您站点的最佳选择。也许您不想与其他站点共享用户数据库。也许您的站点已经变得比网络中的其他站点大得多,并且您想将其分离出来。或者,也许您想为该站点使用不同的托管环境,或者您正在将其他人的多站点网络移至您自己的单个安装中。

另一种可能性是您一直在运行一个小型多站点网络,但现在想要删除除一个站点之外的所有站点,并将其恢复为单个站点安装。

好消息是您可以将子站点从WordPress Multisite迁移到单个站点,或将网络转换到单个站点。不好的消息是,这比简单地将单个站点迁移到另一个WordPress安装或另一个域要复杂得多。

在本文中,我将向您展示如何将WordPress网站从WordPress Multisite迁移到单个站点,而又不会丢失任何数据。

为什么从WordPress多站点迁移到单个站点比迁移单个站点更复杂

让我们看一下为什么从多站点网络中迁移站点比在单站点安装之间迁移要复杂得多。

原因是WordPress Multisite存储数据和文件的方式,以及某些数据与网络中其他站点的数据一起存储的事实。

多站点网络存储有关每个站点的数据,如下所示:

上载文件针对每个站点分别存储在WordPress-content / uploads / sites / xx中,其中xx是单个站点的ID。

大多数数据,包括帖子,帖子元数据,分类法等,都为每个站点分别存储在专用数据库表中,该表在每次将新站点添加到网络时创建。这些站点的前缀包括站点的ID,因此wp_12_posts将是站点12的posts表。

用户数据存储在整个网络的两个表中。用户不是在一个站点上成为用户,而是在网络上拥有一个帐户,该帐户存储有关他们有权访问哪些站点的元数据。这意味着您不能导出用户数据库表并将其迁移到新站点:您将不得不分别迁移用户。

主题和插件文件在网络中存储一次,无论它们在多少个站点上被激活。这是Multisite的主要优点之一,因为这意味着您只需将主题和插件更新一次。但是,当您从网络中迁移站点时,这会使事情变得更加复杂。

在本文中,当我们经历从WordPress多站点迁移到单个站点的过程时,我将向您展示如何分别处理站点的各个部分,以便您可以成功进行迁移。

关于术语的注释:在本文中,我将多站点网络中的站点称为“子站点”。我将使用“基础站点”来指代网络中的核心站点,该站点是激活多站点之前的那个站点。我将在自己专用的WordPress安装中将独立站点称为“单个站点”。

如何将子站点从WordPress多站点迁移到单个站点

因此,假设您到目前为止还没有被该过程所学到的知识所吓倒,让我们看一下执行此过程的不同方法。

选项包括:

  1. 使用免费的导出/导入插件来迁移数据和手动迁移文件。
  2. 使用迁移插件导出所有数据和文件。
  3. 进行手动迁移。

让我们依次看一下这些方法。

1.使用免费插件将子站点从WordPress多站点网络迁移到单个站点

第一个选项使用免费的导入/导出插件来迁移您的内容,并使用另一个免费的插件来迁移小部件设置。

这种方法的好处是它是免费的,并且不涉及数据库的任何修改,因此非常安全。但是,它有一些缺点:

  • 唯一迁移的用户将是创建内容的用户-您将必须手动迁移所有其他用户。
  • 除小部件设置外,不会迁移任何设置。如果您有复杂的设置,并且插件如电子商务插件,则不建议使用此方法,因为您将花费大量时间手动复制所有设置。

但是,如果您的网站很简单,插件数量很少,自定义方式不多,用户也不多,那么这可能是最简单的方法。

因此,让我们看一下您的操作方式。共有六个步骤:

  1. 创建新的单站点安装。
  2. 安装与旧站点相同的插件和主题,然后激活它们。
  3. 使用导入/导出插件迁移内容。
  4. 使用窗口小部件导入/导出插件迁移窗口小部件设置。
  5. 使用“用户导入和导出”插件添加不是内容作者的所有其他用户。
  6. 手动将设置从旧站点复制到新站点。

这是很多步骤,但是其中一些步骤是快速的或自动化的。

创建新的单个站点安装

首先在新的单个站点上安装WordPress。创建网站时,系统会为您提供一个临时域名,因为您现在还不想使用旧网站中的域名-请在站点正常运行时保存该域名。

使用安装程序或手动安装来安装WordPress。

安装插件和主题文件

现在,您需要将在多站点网络中旧站点中使用的插件和主题安装到新站点。在迁移任何内容之前,请务必执行此操作,因为插件和主题可能会创建您需要迁移的内容类型(例如帖子类型)。

从多站点网络中的旧站点打开WordPress仪表板中的每个插件和主题屏幕,然后检查活动状态。如果插件和主题来自WordPress插件和主题目录,则可以正常方式在新站点中安装并激活它们。

如果它们是高级主题,而您没有许可证,则需要购买一个。从提供商那里下载主题/插件,并按照其说明进行安装。

在继续之前,请确保在新站点上激活了所有相同的插件以及相同的主题。不必担心对其进行配置,也不需要通过任何向导来运行-我们将在导入内容后执行此操作。

使用导入/导出插件迁移内容

现在是时候从旧站点导出内容并将其导入到新站点了。

在旧站点中,安装导入/导出插件。您需要通过网络管理员屏幕执行此操作,或要求网络管理员为您执行此操作。

在为您的站点安装并激活插件后,请转到工具>导出。

WordPress导出屏幕

WordPress导出屏幕

在“选择要导出的内容”下,选择“所有内容”,然后单击“下载导出文件”按钮。

这会将XML文件下载到您的计算机,其名称将包括您的站点名称。将其保存在安全的地方–您将需要将其导入到新站点。

现在打开您的新站点,然后转到工具>导入。

如果尚未安装Import插件,则需要单击WordPress下的Install Now链接。

导入屏幕-安装WordPress安装程序

导入屏幕–安装WordPress安装程序

导入程序插件将被安装并激活,一个链接将出现在屏幕顶部,供您运行导入程序。

运行进口商

运行进口商

单击该链接,您将转到上载XML文件的屏幕。

上传导入文件

上传导入文件

单击选择文件按钮,在您的计算机上找到XML文件,然后单击上载文件并导入按钮。

WordPress会要求您指派作者并决定是否要下载附件。

导入选项

导入选项

如果您已经将新作者添加到该网站中,请选择与旧网站中的作者相对应的作者。如果不是,请输入登录名,导入器将为您添加新的用户帐户。然后选中下载和导入文件附件框。

单击提交按钮,导入器将为您从XML文件导入内容。转到“帖子”屏幕,您将可以看到所有列出的内容。

使用小部件导入/导出插件迁移小部件设置。

现在,您已经导入了所有帖子,页面等。

您无法导入大多数设置,但可以使用“窗口小部件导入器和导出器”插件导入窗口小部件设置。

在两个站点上都安装并激活插件–同样,只有在网络中具有插件安装访问权限的情况下,才能执行此操作。

现在,在原始站点(“多站点”中的一个站点)中,转到“工具”>“小部件导入器和导出器”。

小部件导入器和导出器

小部件导入器和导出器

单击导出小部件按钮。这会将.wie文件下载到您的计算机上-将其保存在安全的地方。

现在,在新站点中,转到“工具”>“小部件导入器和导出器”。单击选择文件按钮,然后上传刚刚下载的文件,然后单击导入小部件按钮。您将被带到一个屏幕,显示已导入了哪些小部件。

导入的小部件

导入的小部件

下一步是导入您在导入内容时未创建的所有用户。由于这是迁移网站时需要采取的所有步骤,因此在本文结尾处将进行介绍-向下滚动至“导入用户”部分。

最后,您需要在新站点中更新设置。

手动将设置从旧子站点复制到新单个站点。

最后一步是更新新站点中的设置,以便它们反映旧站点中的设置。这是您必须手动执行的操作,因此这可能是一个费力的过程。

使用WordPress,我们的流量增长了1,187%。
我们将向您展示如何。

加入20,000多个其他人,他们每周都会收到有关WordPress内部技巧的新闻!

现在订阅

成功!感谢您的订阅

您将在一周内收到下一期的Kinsta新闻通讯。

订阅Kinsta新闻通讯

订阅

我同意条款和条件以及隐私政策

在一个浏览器窗口中打开旧站点的管理屏幕,在另一个浏览器窗口中打开新屏幕–甚至更好的是,使用单独的浏览器,这样您就不太可能混淆这两个浏览器。详细地浏览设置屏幕,调整新站点中的设置,以便它们反映旧站点中的设置。

完成此操作后,新站点将启动并运行。最后一个阶段是更新域名-所有方法都相同,下面有关迁移域名的部分将进行介绍。

2.使用迁移插件将子站点从WordPress多站点迁移到单个站点

如果您可以访问多站点网络上的迁移插件,那么与使用“导入/导出”插件相比,使用该插件进行迁移将更加容易和可靠。这也意味着您不必直接访问数据库,因此如果您不愿意这样做,则比手动迁移更安全。

首先执行从旧站点的迁移。您需要使用与WordPress Multisite兼容的迁移插件,并且仅迁移一个站点而不是整个网络。

在Kinsta,我们建议为大型网站提供免费的Migrate Guru插件。但是,此插件不允许您将单个站点移出多站点网络。没有免费的插件可以执行此操作,因此您需要使用高级插件。

大多数迁移插件,即使是高级插件,也不支持将子站点迁移出网络。

两个有价值的选项是Duplicator Pro和All in One WP Migration插件,可通过其服务器传输文件和数据库。

要运行自动迁移,您需要在网络和新站点上购买并安装Duplicator Pro插件。查看插件文档以执行迁移:您需要创建一个包,其中包含从旧站点进行的迁移,然后将其导入到新站点。

由于用户数据是为整个网络存储的,因此您需要分别进行迁移,这将在本文后面介绍,因为它会影响所有迁移方法。

3.将子站点从WordPress多站点手动迁移到单个站点

将站点从WordPress多站点网络迁移到单个站点的最终方法是手动迁移。这不会花费您任何费用,但是只有在您舒适地访问phpMyAdmin并编辑数据库导出文件时才应该这样做。

您要移出多站点的站点将具有三个需要从多站点网络复制的组件:

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

注意:如果您的多站点网络是在WordPress 3.5之前创建的,那么您将没有sites文件夹。相反,您将在wp-content中拥有一个blogs.dir文件夹,其中包含子站点的所有上传文件。这将为您要迁移的网站提供一个带编号的文件夹,您将复制该文件夹。

先备份

在进行迁移之前,最好备份多站点安装。使用首选的备份插件,或者如果提供商允许您使用托管界面创建备份,Kinsta会执行常规备份,您还可以创建手动备份。

您将使用此备份将相关文件复制到新站点,并且在遇到任何问题时也可以放心。

在多站点网络中找到您的子站点的ID

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

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

网络管理员中的站点屏幕

网络管理员中的站点屏幕

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

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

将主题和插件文件从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文件夹的内容复制到新站点中的wp-content / uploads文件夹。

注意:您可能需要删除WordPress在新的上载文件夹中创建的所有文件夹,以免发生冲突。

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

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

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

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

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

选择与您的子站点有关的所有表,然后向下滚动到“与所选项:”框。

选择和导出数据库表

选择和导出数据库表

单击该按钮,然后选择“导出”。

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

快速导出方法

快速导出方法

编辑数据库表

为已下载到您的计算机的SQL文件制作一个副本,并为其命名,以告诉您它是什么(例如,在其名称上添加“副本”)。在代码编辑器中将其打开。

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

从链接开始。您需要将“多站点”网络中站点域的所有实例更改为其新的单个站点域(如果使新站点正常工作,则使用一个临时域)。例如,如果您的站点位于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时指定的登录详细信息相同。

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

对一切正常进行感到满意后,请从多站点安装中删除该站点。我建议将其保留一周左右,以防您发现任何尚未移动的东西。同时,您需要跨域移动(这将在下面介绍)。

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

删除多站点网络中的站点

删除多站点网络中的站点

这是一个漫长而复杂的过程,但是您已经完成了。

将用户从WordPress多站点子站点迁移到单个站点

与用户来自网络中站点的其他数据相比,迁移用户更为复杂,因为用户存储在整个网络的一个数据库表中。

这意味着除非您的网络只有几个用户,而这些用户都是该子站点上的用户,否则您将无法从网络中导出wp_users表。

需要一个可以为您带来竞争优势的托管解决方案?Kinsta为您提供了令人难以置信的速度,最先进的安全性和自动缩放功能。查看我们的计划

相反,您将需要使用插件将用户从网络导出到新站点。导入/导出WordPress用户插件旨在实现此目的,并且是免费的。

在两个站点上都安装插件,然后在多站点网络和新站点上为子站点激活该插件。现在,在子站点中,转到“用户”>“用户导入导出”。

用户导入导出屏幕

用户导入导出屏幕

向下滚动并单击导出用户按钮,以下载包含所有用户数据的CSV文件。

现在,在新站点中,再次转到“用户”>“用户导入导出”。单击用户/客户导入选项卡。

用户导入选项卡

用户导入选项卡

单击选择文件按钮以选择刚刚下载的CSV文件,然后单击上传文件并导入按钮。

该插件将上传文件并从您的旧站点导入所有用户。然后将带您到一个屏幕,显示您导入的那些用户的详细信息。

现在,您已将旧站点的所有方面从“多站点”网络导入到新的WordPress安装中。您只需要走一个步骤:即可转移您的域名。

从多站点网络将域迁移到新的单个站点

是否需要迁移域名将取决于您在多站点网络中的设置方式。

如果您正在为子站点使用子域或子目录,而不是将域映射到它们,那么您将需要为新的单个站点注册一个新域并使用它。

但是,如果要使用与旧站点相同的域名,则需要确保它没有指向网络上的旧站点。

如果已从“多站点”中删除了该子站点(应该删除),则该站点将不再使用该域名。但是您仍然需要确保它指向您的新站点。

为此,您需要使用DNS将域名指向新站点。如果您使用Kinsta,请按照我们的说明将域名指向我们的托管。

然后在“设置”>“常规”选项卡中更新新站点中的设置。

常规设置屏幕

常规设置屏幕

将正确的域名添加到“站点URL”和“站点地址”字段,然后保存更改。

大功告成!您的网站现在将作为单个WordPress网站工作。

如何将整个多站点网络还原到单个站点

有时,您不想将单个站点移出WordPress多站点网络,而是想要将整个网络还原到一个站点,而根本不运行多站点。

这是一个艰巨的步骤,但是如果您的网络仅包含很少的站点,或者您必须删除除基本站点以外的所有站点,那么这可能是有意义的。

您只能在基础站点上进行此操作,即激活多站点之前已经存在的基础站点。您不能通过这种方式将子站点之一还原为网络上的唯一站点。

为此,您需要执行以下五个步骤:

让我们来完成这个过程。

1.删​​除或迁移网络中的所有站点

首先,您需要删除网络中的所有子站点。只需从“站点”屏幕中将它们删除,或将它们中的每个迁移到他们自己的单个站点或另一个网络(尽管如果您要创建另一个网络,则很难知道为什么要这样做)。

请按照上述步骤迁移每个子站点。完成这些操作后,他们都将在新的位置工作,请转到“网络管理员”>“站点”。

选择所有子站点,然后打开“批量操作”下拉菜单,然后选择“删除”。然后单击“应用”按钮。

删除所有子站点

删除所有子站点

在执行此操作之前,请非常小心,并确保备份或迁移了您需要的任何内容。没有回头路了。

这样删除子站点将删除每个子站点的上载文件以及与这些站点有关的数据库表,但是不会删除所有的多站点数据库表,您将在以后进行。

现在,您的网络只有一个站点。

2.卸载和删除基础站点未使用的主题和插件

现在转到网络管理>插件。删除主站点未使用的所有插件。您可能需要先进入主站点的“插件”屏幕进行检查。

对主题重复此操作,然后删除不需要的主题。

3.删除无法访问基础站点的用户

现在,转到“网络管理员”>“用户”,然后删除所有无权访问基本站点的用户帐户。

安装多站点增强插件可能会有所帮助,因为它将告诉您哪些用户在哪个站点上拥有帐户。在下面的示例中,只有超级管理员可以访问基本站点。

网络用户

网络用户

要删除用户,请选择要删除的用户,单击“批量操作”下拉菜单,选择“删除”,然后单击“应用”按钮。

现在,您的网络上将只具有可以访问该基础站点的用户。

在WordPress安装上停用WordPress多站点

最后一步是停用网络上的WordPress Multisite。在执行此操作之前,请备份您的站点,以防万一。

现在打开wp-config.php文件并找到以下几行:

define(’MULTISITE’,true);
define(’SUBDOMAIN_INSTALL’,false);
$ base =“ / wordpress /”;
define(’DOMAIN_CURRENT_SITE’,’localhost’);
define(’PATH_CURRENT_SITE’,’/ wordpress /’);
define(’SITE_ID_CURRENT_SITE’,1);
define(’BLOG_ID_CURRENT_SITE’,1);

删除所有这些行。

找到显示以下内容的行:

define(’WP_ALLOW_MULTISITE’,true);

编辑它,使其显示为:

define(’WP_ALLOW_MULTISITE’,false);

现在保存您的wp-config.php文件。

您还可能需要编辑.htaccess文件,以将其还原为单个站点的代码。

如果您是Kinsta客户,并且您的多站点网络运行在子域上,则应该发现您不需要进行此编辑,并且您的站点将仅通过wp-config.php编辑即可作为单个站点工作。如果您的网络运行在子目录上,则需要联系支持以请求进行更改。

通过MyKinsta筹集支持票

通过MyKinsta筹集支持票

如果您有权访问.htaccess文件,请在代码编辑器中将其打开,然后找到与“多站点”相关的行。用以下行替换它们:

RewriteBase上的RewriteEngine / wordpress /
RewriteRule ^ index.php $-[L]

#个上传的文件
RewriteRule ^([_ 0-9a-zA-Z-] + /)?files /(.+)wp-includes / ms-files.php?file = $ 2 [L]

#在/ wp-admin
RewriteRule ^([_ 0-9a-zA-Z-] + /)后面加上斜杠?wp-admin $ $ 1wp-admin / [R = 301,L]
RewriteCond%{REQUEST_FILENAME} -f [OR]
RewriteCond%{REQUEST_FILENAME} -d
RewriteRule ^-[L]
RewriteRule ^([_ 0-9a-zA-Z-] + /)?(wp-(content | admin | includes。*)$ 2 [L]
RewriteRule ^([_ 0_0a-zA-Z-] +
/)?(。*。php)$ $ 2 [L] RewriteRule。index.php [L]

保存.htaccess文件。

删除多站点添加的数据库表

首次激活多站点时,WordPress会在您的站点中添加额外的数据库表。

在phpMyAdmin中,找到以下表:

  • wp_blogs
  • wp_blog_versions
  • wp_registration_log
  • wp_signups
  • wp_site
  • wp_sitemeta

全部选中它们,单击“与选定项:”下拉列表,然后选择“删除”。确认您要这样做,表将从数据库中删除。

您现在有一个站点WordPress安装。您将需要再次登录,但是该基础站点现在应该可以作为一个站点工作。

概要

将站点移出WordPress多站点网络比在单个站点之间迁移要复杂得多,但这并非不可能。也可以将多站点网络还原到单个站点,以便仅基础站点仍然存在。

请按照上述步骤操作,您将拥有一个新的单一站点,而不是多站点网络中的站点。您对WordPress多站点和单个站点有疑问吗?让我们在评论中知道!

如果您喜欢这篇文章,那么您会喜欢Kinsta的WordPress托管平台。加速您的网站并获得我们经验丰富的WordPress团队的24/7支持。我们基于Google Cloud的基础架构专注于自动扩展,性能和安全性。让我们向您展示Kinsta的与众不同!查看我们的计划