有时,站点已在wordpress多站点网络中创建,但需要移至其自己的单站点安装。有几种情况可能会发生这种情况,包括:
- 该网站已经变得太大,无法包含在网络中。
- 该网站需要有自己的IP地址。
- 网站所有者正在更换提供商或接管网站本身的全部管理。
在某些情况下,您可能会发现可以使用插件或插件组合将站点移出多站点,但如果这不起作用,您将需要移动相关的数据库表。以这种方式将站点移出多站点网络是一个棘手的过程,因为它涉及隔离多站点数据库中与该特定站点相关的数据库表。但这并非不可能。
您需要什么
要学习本教程,您需要:
- WordPress多站点安装,其中包含一个您想要移至其自己的WordPress安装的子网站。
- 您要将网站移至的第二个位置。
- 对于手动移动,您需要FTP客户端、代码编辑器以及phpMyAdmin的访问权限。
注意:您无法将主站点移出多站点网络,因为如果没有它,网络将无法工作。如果您确实需要将主网站的内容移动到其他地方,我建议您创建一个副本,然后用虚拟网站替换原始网站的内容。不过,您将无法移动该域名,因为您网络中的所有其他网站也在使用该域名。
使用插件将站点迁移出多站点
如果您的网站没有通过插件、主题或网站设置屏幕进行大量配置,您可以使用WordPress导入器插件成功移动它。如果网站有小部件,您可以使用小部件设置导入器/导出器插件复制它们的设置。
但是,如果您使用设置或选项屏幕或主题定制器添加了大量定制配置,则这些配置都不会被复制。在这种情况下,您需要手动移动。
有关如何使用这些插件移动站点的完整详细信息,请参阅我之前关于使用插件移动WordPress站点的教程。该过程与将站点从多站点网络移动到其自己的WordPress安装完全相同。
手动将站点迁移出多站点
您要从多站点移出的站点将包含您需要从多站点网络复制的三个组件:
- 主题和插件文件-您可以复制这些文件或在新网站中重新安装它们
- uploads—您可以在wp-content/uploads/sites的网站子目录中找到这些内容
- 数据库表-您不需要所有数据库表,只需要与此网站相关的数据库表
注意:如果您的多站点网络是在WordPress3.5之前创建的,则您不会有sites文件夹。相反,您将在wp-content中拥有一个blogs.dir文件夹,其中包含子网站的所有上传文件。这将为您要迁移的网站提供一个编号文件夹,您可以复制该文件夹。我将在下面更详细地介绍这一点。
您真的需要移动网站吗?
开始之前,请考虑一下您要迁移网站的原因。难道纯粹是为了换个新域名吗?如果是这种情况,那么免费的域映射插件将允许您为各个站点提供自己的域,并且访问者将永远不会看到您的多站点网络的域。
但如果这不是唯一的原因,请继续阅读!
首先备份
在执行此类操作之前,最好备份您的多站点安装。使用您喜欢的备份插件,或者如果您喜欢手动工作,则使用FTP和phpMyAdmin的组合。
您将使用此备份将相关文件复制到您的新网站,并且在遇到任何问题时也能让您高枕无忧。
在多站点网络中查找您的站点的ID
多站点网络中的每个站点都有自己唯一的数字ID。这用于标识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,并且将是包含其文件的文件夹的名称,以及其数据库表名称的前缀。
p>
从网络导出站点的表
由于您仅移动一个子站点而不是整个安装,因此您不需要整个数据库的内容。
在PhpMyAdmin中,单击导出选项卡。然后找到与您要导出的站点相关的表。它们将以wp_XX_开头,其中XX是您网站的ID。下面显示了一个示例。
选择与您的子网站相关的所有表格,然后导出它们。
注意:WordPressMultisite将与网络用户相关的所有数据存储在wp_users和wp_usermeta表中:它不会为每个站点创建单独的数据。如果您的网站上有很多用户想要从网络复制,那么您可能还需要导出这些表,将它们导入到新网站并在管理屏幕中编辑用户以删除任何不存在的用户。与新网站相关。但是,如果您的网站只有一两个用户,则在新网站上重新创建用户会更容易。有关多站点和数据库表的详细信息,请参阅有关WordPress数据库和多站点的教程。
编辑数据库表
复制已下载到您计算机上的sql文件,并为其指定一个名称(例如,将copy添加到其名称中))。在代码编辑器中打开它。
编辑链接
将多站点网络中站点域的所有实例更改为其新的单站点域。例如,如果您的网站位于http://network.com/mysite,请将其更改为http://mysite.com。如果您的网络使用子域,则需要更改http://mysite.network.com的所有实例。如果您这样做,我建议您还运行检查子目录版本以防万一。保存您的文件。
注意:如果您的网站映射了一个域,但该域不是您要将其移动到的域,则您也需要将其替换为新域。这里要非常小心,并保留备份!
编辑表引用
新的单站点安装中的数据库表不会有站点ID的前缀,因此您需要删除它们。在sql文件中,将wp_XX_的所有实例替换为wp_,其中XX是您的站点ID。p>
现在保存sql文件。
安装WordPress并在新位置创建数据库
在phpMyAdmin中,在新站点的位置创建一个新数据库,并以正常方式安装WordPress。
将文件上传到新网站
识别子网站使用的插件,然后通过插件屏幕将它们安装到您的新WordPress网站中,或者从您对旧网站的备份上传它们。
对您网站使用的任何主题执行相同的操作-将它们从备份复制到新的独立WordPress安装的wp-content/themes目录,或者只是重新安装它们。
将上传内容从旧网站复制到新网站:
- 如果网络是在WordPress3.5之后创建的,则它将在wp-content/uploads中包含一个sites文件夹。找到包含您网站ID的子文件夹,并将其内容上传到新网站中的wp-content/uploads文件夹。
- 如果网络较旧,并且有一个blogs.dir文件夹,该文件夹还将包含一个包含您网站ID的文件夹。然后会有一个名为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
屏幕截图显示了我的数据库,其中仅选择了这些表:
选择它们,单击选择:下拉框,然后选择删除。出现提示时,点击开始。
注意:不要删除wp_usermeta或wp_users表,除非您也选择从网络复制这些表(参见上文)。
上传数据库表
接下来上传您编辑过的数据库:
- 点击导入标签。
- 点击选择文件按钮。
- 选择您已编辑的sql文件,然后点击选择或确定。
- 点击开始按钮。
- 一段时间后(取决于数据库的大小),您将看到一条消息,告诉您上传已成功完成。
最终步骤
清除浏览器的缓存。这可以避免浏览器缓存了旧网站的内容时可能遇到的任何问题。
现在登录远程站点的WordPress管理员。如果您移动了用户表,您的登录详细信息将与旧网站相同,但如果您没有这样做,这些详细信息将是您在新位置安装WordPress时指定的内容。
访问永久链接屏幕并重新打开漂亮的永久链接。
检查您的所有链接是否工作正常,小部件和插件是否按其应有的方式运行。如果没有,您可以退回到该过程,在需要的地方使用备份,或者只是在新网站中设置插件和小部件。
从多站点网络中删除站点
一旦您对一切正常运转感到完全满意,请从多站点安装中删除该站点。我建议将其保留一周左右,以防您发现任何未移动的东西。与此同时,您可以使用插件或在CPanel中配置旧站点的域以映射到新站点。
唷!这是一个漫长且稍微复杂的过程,但您已经完成了。
摘要
将站点从WordPressMultisite迁移到其自己的安装中并不是一件可以快速完成或不彻底完成的事情,但这是可能的,而且我已经这样做过几次了。如果您按照上述步骤操作并确保有备份以防出现任何问题,那么您应该会发现它对您来说很顺利。