É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.phpmais ne cliquez pas sur «Exécuter l'installation»blogs.dir/SITE_ID/filespar uploads, et si vous changez l'URL de votre site, recherchez oldsite.comet 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.
SITEIDpour l'ID de site correct. Au lieu de cela, vous devez mentionner que les options siteurlet homedevront probablement être mises à jour dans le wp_optionstableau. 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_MULTISITEdans votre wp-config.php surFALSESupprimez 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 WordPressCréez les permaliens nouveaux, dans le backend wp-admin/options-permalink.phpet 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 /