Учитывая многосайтовую сеть WordPress с основным блогом и предполагая, что весь контент был перенесен в этот блог, как можно было бы свернуть сеть обратно в стандартную несетевую не многосайтовую установку WordPress?
Учитывая многосайтовую сеть WordPress с основным блогом и предполагая, что весь контент был перенесен в этот блог, как можно было бы свернуть сеть обратно в стандартную несетевую не многосайтовую установку WordPress?
Ответы:
Я прошел шаги по извлечению сайта из многосайтовой установки в один экземпляр:
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, я забыл упомянуть последние шаги, которые вам, возможно, придется предпринять, например. поиск / замена старых URL. Я обновил список соответственно.
SITEID
правильный идентификатор сайта. Вместо этого, вы должны отметить , что siteurl
и 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
Создайте постоянные ссылки new в backend wp-admin/options-permalink.php
и, возможно, скопируйте результат в .htaccess
, если это невозможно для WP, права на запись в этот файл.
Удалить ненужные записи в таблице users
; используйте следующую инструкцию SQL в инструменте, таком как phpMyAdmin или Adminer
`ALTER TABLE `wp_users` DROP `spam`, DROP `deleted`;`
Следующие таблицы могут быть удалены:
(измените wp_
префикс вашей базы данных)
Теперь у вас есть только последние таблицы других блогов сети. Если вы будете использовать и этот контент, то экспортируйте его раньше с помощью экспорта WordPress в формате XML и импортируйте сейчас в единой чистой установке.
На самом деле это возможно и довольно легко сделать; Я сделал это сам несколько раз.
Есть вещи для рассмотрения.
Закомментирование определения мультисайта (?) В wp-config и обновление ваших постоянных ссылок вернет сайт в режим одного сайта / по умолчанию. Тогда все, что вам нужно сделать, это очистить базу данных.
Если по какой-либо причине вы не можете получить доступ к своему wp-admin для обновления постоянных ссылок, просто удалите ваш файл .htaccess. WordPress воссоздает его для вас в режиме одного сайта.
Я сделаю все возможное, чтобы найти ссылку на код / статью поддержки и обновить ответ с ним.
Вот ссылка на один элемент на форуме поддержки http://wordpress.org/support/topic/revert-to-single-site
Основные процессы здесь работают хорошо даже в WP 3.5.1 Одно уточнение: если вы назвали свой дочерний сайт чем-то, вам придется изменить ссылки в базе данных, чтобы удалить это имя. Если мой дочерний сайт был назван ... mysite.com/comics, то после выполнения описанных выше процедур ваш WP будет искать mysite.com/comics и получать ошибки по постоянным ссылкам. Отредактируйте таблицу WP-OPTIONS в поисках расширения / comics и удалите его. Кроме того, убедитесь, что каталог Uploads указывает на правильное местоположение - он может по-прежнему отображать запись blogs.dir и теперь должен вместо этого указывать на wp-content / uploads /