给定一个带有主博客的WordPress多站点网络,并假设所有内容都已移至该博客,那么如何将网络折叠回标准WordPress非网络非多站点安装?
给定一个带有主博客的WordPress多站点网络,并假设所有内容都已移至该博客,那么如何将网络折叠回标准WordPress非网络非多站点安装?
Answers:
我已经完成了将站点从多站点安装提取到单个实例的步骤:
DELETE FROM wp_usermeta WHERE user_id NOT IN( SELECT distinct(user_id) FROM wp_usermeta where meta_key LIKE 'wp_SITEID_%' );
DELETE FROM wp_users WHERE ID NOT IN( SELECT distinct(user_id) FROM wp_usermeta where meta_key LIKE 'wp_SITEID_%' );
UPDATE wp_usermeta SET meta_key = REPLACE( meta_key, 'wp_SITEID_', 'wp_' ) WHERE meta_key LIKE 'wp_SITEID_%';
UPDATE wp_options SET option_name = REPLACE( option_name, 'wp_SITEID_', 'wp_' ) WHERE option_name LIKE 'wp_SITEID_%';
wp-config.php
但不要单击“运行安装”blogs.dir/SITE_ID/files
为uploads
,如果要更改网站URL,请搜索oldsite.com
并替换为newsite.com
。相当多的工作,您必须谨慎进行数据库编辑,但这是我唯一能看到的从现有多站点中提取所有设置等完整的站点。
编辑:
正如@Jake所指出的,我忘记提及您可能需要采取的最终步骤,例如。搜索/替换旧网址。我已经相应地更新了列表。
SITEID
为正确的站点ID 时,第7步没有任何作用或没有任何效果。与其相反,您应该提到表中的siteurl
and home
选项可能需要更新wp_options
。其余的都是很好的清单。谢谢。
无需重新安装新博客就可以删除多站点安装。遵循步骤。
WP_ALLOW_MULTISITE
在wp-config.php中将常量设置为FALSE
删除或评论中的MU设置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 );
*/
从中删除MU设置.htaccess
,例如以下来源:
# BEGIN WordPress
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
# add a trailing slash to /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-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPress
在后端创建新的永久链接,wp-admin/options-permalink.php
并可能将结果复制到.htaccess
(如果无法用于WP)此文件的写权限。
删除表中未使用的条目users
;在工具(例如phpMyAdmin或Adminer)中使用follow sql语句
`ALTER TABLE `wp_users` DROP `spam`, DROP `deleted`;`
可以删除以下表格:
(更改wp_
为数据库前缀)
现在,您只有网络中其他博客的最后一个表。如果您还将使用此内容,则在通过WordPress导出之前将其导出为XML,然后立即以干净的单一安装方式导入。
实际上,这是可能并且相当容易做到的;我自己做了几次。
有一些事情要考虑。
注释掉wp-config中的多站点define(?)并更新您的永久链接会将站点恢复为单站点/默认模式。然后,您要做的就是清理数据库。
如果由于某种原因您无法访问wp-admin来更新永久链接,只需删除.htaccess文件即可。WordPress将在单站点模式下为您重新创建它。
我将尽力找到代码/支持文章的链接,并使用它来更新答案。
这是指向支持论坛http://wordpress.org/support/topic/revert-to-single-site上一个项目的链接