Étant donné un réseau WordPress multisite, avec un blog principal, et en supposant que tout le contenu a été déplacé vers ce blog, comment réduire le réseau en une installation standard non multisite WordPress hors réseau?
Étant donné un réseau WordPress multisite, avec un blog principal, et en supposant que tout le contenu a été déplacé vers ce blog, comment réduire le réseau en une installation standard non multisite WordPress hors réseau?
Réponses:
J'ai parcouru les étapes pour extraire un site d'une installation multisite vers une seule instance maintenant:
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
mais ne cliquez pas sur «Exécuter l'installation»blogs.dir/SITE_ID/files
par uploads
, et si vous changez l'URL de votre site, recherchez oldsite.com
et remplacez par newsite.com
.Un peu d'effort et vous devez être prudent avec les modifications de la base de données, mais c'est le seul que je peux voir pour extraire un seul site d'un multisite existant avec tous ses paramètres, etc. intact.
ÉDITER:
Comme repéré par @Jake, j'ai oublié de mentionner les dernières étapes que vous devrez peut-être prendre, par exemple. rechercher / remplacer d'anciennes URL. J'ai mis à jour la liste en conséquence.
SITEID
pour l'ID de site correct. Au lieu de cela, vous devez mentionner que les options siteurl
et home
devront probablement être mises à jour dans le wp_options
tableau. Le reste de cette liste était plutôt bonne. Merci.
Il est possible de supprimer l'installation multisite sans réinstaller un nouveau blog. Suivez les étapes.
WP_ALLOW_MULTISITE
dans votre wp-config.php surFALSE
Supprimez ou commentez les paramètres MU wp-config.php
, comme ceci:
/**
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 );
*/
Supprimez les paramètres MU .htaccess
, comme la source ci-dessous:
# 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
Créez les permaliens nouveaux, dans le backend wp-admin/options-permalink.php
et copiez peut-être le résultat dans .htaccess
, si ce n'est pas possible pour WP, les droits d'écriture sur ce fichier.
Supprimez les entrées inutiles du tableau users
; utiliser l'instruction sql suivante dans un outil, comme phpMyAdmin ou Adminer
`ALTER TABLE `wp_users` DROP `spam`, DROP `deleted`;`
Les tableaux suivants peuvent être supprimés:
(changez wp_
le préfixe de votre base de données)
Vous n'avez maintenant que les derniers tableaux des autres blogs du réseau. Si vous utilisez également ce contenu, exportez-le avant via WordPress, exportez-le en XML et importez-le maintenant dans une installation unique et propre.
En fait, c'est possible et assez facile à faire; Je l'ai fait moi-même plusieurs fois.
Il y a des choses à considérer.
La mise en commentaire de la définition multisite (?) Dans wp-config et la mise à jour de vos permaliens ramèneront le site en mode site unique / par défaut. Ensuite, tout ce que vous avez à faire est de nettoyer votre base de données.
Si, pour une raison quelconque, vous n'êtes pas en mesure d'accéder à votre administrateur wp pour mettre à jour les permaliens, supprimez simplement votre fichier .htaccess. WordPress le recréera pour vous en mode site unique.
Je ferai de mon mieux pour trouver le lien vers l'article codes / support et mettre à jour la réponse avec.
Voici un lien vers un élément du forum d'assistance http://wordpress.org/support/topic/revert-to-single-site
Les processus de base ici fonctionnent bien même dans WP 3.5.1 Une précision: si vous avez nommé quelque chose pour votre sous-site, vous devrez changer les liens dans la base de données pour supprimer ce nom. Si mon sous-site a été nommé ... mysite.com/comics, après avoir suivi les procédures ci-dessus, votre WP recherchera mysite.com/comics et obtiendra des erreurs sur les permaliens. Modifiez la table WP-OPTIONS en recherchant l'extension / comics et supprimez-la. Vérifiez également que le répertoire Uploads pointe vers l'emplacement approprié - il peut toujours afficher une entrée blogs.dir et devrait désormais pointer vers wp-content / uploads /