Biorąc pod uwagę sieć WordPress Multisite z głównym blogiem i zakładając, że cała zawartość została przeniesiona na tego bloga, jak można by zwinąć sieć z powrotem do standardowej instalacji innej niż WordPress dla sieci innych niż sieć?
17
Odpowiedzi:
Przeszedłem teraz kroki, aby wyodrębnić witrynę z instalacji na wielu serwerach do jednej instancji:
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
ale nie klikaj „Uruchom instalację”blogs.dir/SITE_ID/files
zuploads
, a jeśli zmienia adres URL witryny wyszukaćoldsite.com
i zastąpićnewsite.com
.Spory wysiłek i trzeba uważać na edycje bazy danych, ale to jedyne, co widzę, aby wyodrębnić jedną witrynę z istniejącej witryny z wszystkimi jej ustawieniami itp. Nienaruszonymi.
EDYTOWAĆ:
Jak zauważył @Jake, zapomniałem wspomnieć o ostatnich krokach, które mogą być konieczne, np. wyszukaj / zamień stare adresy URL. Zaktualizowałem odpowiednio listę.
źródło
SITEID
prawidłowy identyfikator witryny. Zamiast tego, należy wspomnieć, żesiteurl
ihome
opcje będą prawdopodobnie muszą być aktualizowane wwp_options
tabeli. Reszta to całkiem niezła lista kontrolna. Dzięki.Możliwe jest usunięcie instalacji wielu witryn bez ponownej instalacji nowego bloga. Postępuj zgodnie z instrukcjami.
WP_ALLOW_MULTISITE
w pliku wp-config.php naFALSE
Usuń lub skomentuj ustawienia MU w
wp-config.php
następujący sposób:Usuń ustawienia MU z
.htaccess
, np. Źródła poniżej:Utwórz linki bezpośrednie nowe, w backendie
wp-admin/options-permalink.php
i być może skopiuj wynik.htaccess
, jeśli nie jest to możliwe dla WP, prawa do zapisu w tym pliku.Usuń niepotrzebne wpisy w tabeli
users
; użyj instrukcji follow sql w narzędziu, takim jak phpMyAdmin lub AdminerMożna usunąć następujące tabele:
(zmień
wp_
na prefiks bazy danych)Teraz masz tylko ostatnie tabele innych blogów w sieci. Jeśli będziesz używać tej zawartości, wyeksportuj ją wcześniej za pomocą WordPressa jako eksport XML i zaimportuj teraz w czystej instalacji pojedynczej.
źródło
W rzeczywistości jest to możliwe i dość łatwe do zrobienia; Zrobiłem to sam kilka razy.
Są rzeczy do rozważenia.
Komentowanie multi-site-definiowania (?) W wp-config i aktualizacja permalinków spowoduje przywrócenie strony do trybu pojedynczej strony / domyślnego. Następnie wystarczy wyczyścić bazę danych.
Jeśli z jakiegoś powodu nie możesz uzyskać dostępu do administratora wp-admin, aby zaktualizować łącza bezpośrednie, po prostu usuń plik .htaccess. WordPress odtworzy go dla ciebie w trybie pojedynczej witryny.
Zrobię co w mojej mocy, aby znaleźć link do kodu / artykułu pomocy technicznej i zaktualizować odpowiedź.
Oto link do jednego elementu na forum pomocy http://wordpress.org/support/topic/revert-to-single-site
źródło
Podstawowe procesy tutaj działają dobrze nawet w WP 3.5.1. Jedno wyjaśnienie: jeśli nazwałeś swoją podwitrynę, będziesz musiał zmienić łącza w bazie danych, aby usunąć tę nazwę. Jeśli moja podwitryna została nazwana ... mysite.com/comics, to po wykonaniu powyższych procedur twoja WP będzie szukać mysite.com/comics i otrzyma błędy w linkach bezpośrednich. Edytuj tabelę WP-OPTIONS, szukając rozszerzenia / comics i usuń je. Sprawdź również, czy katalog Uploads wskazuje właściwą lokalizację - może nadal wyświetlać wpis blogs.dir i powinien teraz wskazywać na wp-content / uploads /
źródło
Bardzo ważną kwestią, której nie można pominąć i o której mniej się mówi, jest to, że nadal powinieneś mieć linię:
define( 'WP_ALLOW_MULTISITE',
...Ale należy to zmienić zaktualizować do
define( 'WP_ALLOW_MULTISITE', 0 );
źródło