Враховуючи мережу WordPress Multisite з основним блогом та припускаючи, що весь вміст було переміщено до цього блогу, як би згортати мережу назад у стандартну немережеву немережеву установку WordPress?
Враховуючи мережу WordPress Multisite з основним блогом та припускаючи, що весь вміст було переміщено до цього блогу, як би згортати мережу назад у стандартну немережеву немережеву установку 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
Створіть перманентні посилання нові, в бекенді wp-admin/options-permalink.php
та, можливо, скопіюйте результат у .htaccess
, якщо це неможливо для WP, прав на запис у цей файл.
Видалити непотрібні записи в таблиці users
; використовувати наступний оператор sql в інструменті, наприклад phpMyAdmin або Adminer
`ALTER TABLE `wp_users` DROP `spam`, DROP `deleted`;`
Наступні таблиці можна скинути:
(зміна wp_
префіксу вашої бази даних)
Тепер у вас є лише останні таблиці інших блогів мережі. Якщо ви будете використовувати його також і цим контентом, експортуйте це раніше за допомогою експорту WordPress у вигляді XML та імпортуйте зараз у чистому режимі одного встановлення.
Насправді це можливо і досить легко зробити; Я робив це сам кілька разів.
Є речі, які слід врахувати.
Прокоментувавши multi-site define (?) У wp-config та оновивши ваші постійні посилання, повернеться його в режим одного сайту / за замовчуванням. Тоді все, що вам потрібно зробити, - це очистити вашу базу даних.
Якщо ви з якоїсь причини не маєте доступу до свого wp-адміністратора для оновлення постійних посилань, просто видаліть свій .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 та видаліть її. Крім того, переконайтеся, що каталог завантажень вказує на потрібне місце - він все ще може відображати запис blogs.dir і тепер замість цього повинен вказувати на wp-content / uploads /