Data una rete multisito di WordPress, con un blog principale, e supponendo che tutto il contenuto sia stato spostato su quel blog, come si ridurrebbe la rete in un'installazione standard non multisito di WordPress?
Data una rete multisito di WordPress, con un blog principale, e supponendo che tutto il contenuto sia stato spostato su quel blog, come si ridurrebbe la rete in un'installazione standard non multisito di WordPress?
Risposte:
Ho seguito i passaggi per estrarre un sito da un'installazione multisito in una singola istanza ora:
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
ma non fare clic su "Esegui l'installazione"blogs.dir/SITE_ID/files
con uploads
, e se stai cambiando l'URL del tuo sito cerca oldsite.com
e sostituisci con newsite.com
.Un bel po 'di sforzo e devi stare attento con le modifiche al database, ma è l'unico che posso vedere per estrarre un singolo sito da un sito esistente con tutte le sue impostazioni ecc ... intatte.
MODIFICARE:
Come notato da @Jake ho dimenticato di menzionare gli ultimi passi che potresti dover fare ad es. cerca / sostituisci vecchi URL. Ho aggiornato l'elenco di conseguenza.
SITEID
all'ID sito corretto. Invece, dovresti menzionare che le opzioni siteurl
e home
dovranno probabilmente essere aggiornate nella wp_options
tabella. Il resto era una lista di controllo piuttosto buona. Grazie.
È possibile rimuovere l'installazione multisito senza reinstallare un nuovo blog. Segui i passaggi.
WP_ALLOW_MULTISITE
nel tuo wp-config.php suFALSE
Rimuovi o commenta le impostazioni MU in wp-config.php
questo modo:
/**
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 );
*/
Rimuovi le impostazioni MU da .htaccess
, come la fonte di seguito:
# 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
Crea i permalink nuovi, nel backend wp-admin/options-permalink.php
e forse copia il risultato .htaccess
, se non è possibile per WP, i diritti di scrittura su questo file.
Rimuovere le voci non utili nella tabella users
; usa la seguente istruzione sql in uno strumento, come phpMyAdmin o Adminer
`ALTER TABLE `wp_users` DROP `spam`, DROP `deleted`;`
È possibile eliminare le seguenti tabelle:
(modifica wp_
il prefisso del database)
Ora hai solo le ultime tabelle di altri blog della rete. Se lo utilizzerai anche con questo contenuto, esportalo prima tramite WordPress esporta come XML e importa ora nella singola installazione pulita.
In realtà è possibile e abbastanza facile da fare; L'ho fatto da solo diverse volte.
Ci sono cose da considerare.
Commentando la definizione di più siti (?) In wp-config e aggiornando i permalink, il sito tornerà alla modalità sito singolo / predefinito. Quindi tutto ciò che devi fare è ripulire il database.
Se per qualche motivo non riesci ad accedere al tuo wp-admin per aggiornare i permalink, elimina semplicemente il tuo file .htaccess. WordPress lo ricrea per te in modalità sito singolo.
Farò del mio meglio per trovare il link ai codici / articolo di supporto e aggiornare la risposta con esso.
Ecco un link a un elemento nel forum di supporto http://wordpress.org/support/topic/revert-to-single-site
I processi di base qui funzionano bene anche in WP 3.5.1 Un chiarimento: se hai nominato il tuo sito secondario qualcosa devi cambiare i collegamenti nel database per rimuovere quel nome. Se il mio sito secondario è stato chiamato ... mysite.com/comics, dopo aver seguito le procedure di cui sopra, il tuo WP cercherà mysite.com/comics e otterrà errori sui permalink. Modifica la tabella WP-OPTIONS cercando l'estensione / comics e rimuovila. Inoltre, controlla che la directory Uploads indichi la posizione corretta: potrebbe comunque mostrare una voce blogs.dir e ora dovrebbe invece puntare a wp-content / uploads /