Présentation du multisite WordPress.
La technique du Multisite permet de faire fonctionner plusieurs site WordPress ensemble au sein d’une seule et mĂȘme installation.
Cette technique permet de mutualiser le Coeur de WordPress, les thĂšmes ainsi que les extensions.
En rĂ©sulte un gain de temps non nĂ©gligeable lors de la maintenance de vos sites puisque vous ne mettez Ă jour qu’une seule fois.
En savoir plus:
Extraire un site d’un multisite Ă©tape par Ă©tape.
Tout d’abord, ce tutoriel ne se veut pas LA mĂ©thode mais une mĂ©thode qui fonctionne et que j’ai mis en action aujourd’hui dans le cadre de mon poste de dĂ©veloppeur WordPress.
Ătape -1 – Sauvegarde
Saaaaauuuuuvvvvvveeeeegggggaaaaaarrrrrrdddddeeeeee
Sauvegardez vos fichiers (WP, extensions, thÚmes, mu-plugins et base de données Mysql)
Ătape 0 – Installation en local
Avoir le multisite en local, ce sera bien plus simple Ă gĂ©rer et en cas d’accident, ca ne gĂ©nera que vous!
Ătape 1 – Mises Ă jour
La premiĂšre Ă©tape va consister a mettre votre multisite Ă jour:
WordPress
ThĂšmes
Extensions
Langues
Si cette Ă©tape n’est pas fondamentale, je me dis que:
ça ne peut pas faire de mal
ça peut éviter les conflits et les soucis par la suite quand vous importerez thÚmes et extension dans votre site WordPress « Classique ».
Ătape 2 – Installer WordPress
Installer un WordPress tout beau tout neuf… Pour cela je vous propose de le faire en 3 minutes grĂące au script wp-cli que j’ai crĂ©Ă© pour vous…
OK j’avoue, je l’ai crĂ©Ă© pour moi… et je me suis dit que ça pourrait vous intĂ©resser!
Ătape 3 – TransfĂ©rer les fichiers
Alors maintenant, va commencer un transfert de fichiers. VoilĂ pourquoi je vous ai demandĂ© en Ă©tape 0 de travailler en local. e sera bien plus facile de dĂ©placer des fichiers dans l’explorateur de votre machine qu’Ă distance via un sFTP ou autre.
Pensez à transférer:
Les thĂšmes (parent et enfants)
Les extensions
Les « mu-plugins »
le dossier « uploads »… mais lui je lui rĂ©serve l’Ă©tape 4!
Bien sur, sur le multisite peut ĂȘtre que toutes les extensions ou tous les thĂšmes n’Ă©taient pas utiles pour le site que vous ĂȘtes en train d’extraire.
Ne transfĂ©rez que ce dont vous avez besoin et n’activez rien
Ătape 4 – le dossier « Uploads »
Le dossier Upload situé dans `wp-content` contient tous les médias téléversés sur votre site et disponible dans la médiathÚque.
Avouez que ce serait ballot de ne pas les retrouver dans votre nouvelle installation.
Le dossier Upload est un peu diffĂ©rent Ă transfĂ©rer puisque son architecture de dossiers et de sous-dossier est diffĂ©rent d’une installation classique.
Architecture du dossier Uploads en Multitisite
Remarquez la diffĂ©rence avec une architecture classique. Dans « uploads », nous avons un dossier « sites » qui n’existe pas dans une installation classique de WordPress.
A l’intĂ©rieur de ce dossier « sites » nous avons un dossier nommĂ© par l’id du site dans l’infrastructure multisite .
Ensuite, nous retrouvons le classement classique des médias par WordPress avec un dossier année et un dossier mois.
Retrouvez l’ID du site a extraire du multisite
J’estime que si vous faites cette manipulation alors vous avez les privilĂšges de super-administrateur.
Cette Ă©tape est assez simple, il faut se rendre dans l’administration rĂ©seau de votre multisite puis dans le sous-menu « Sites » au bout de la ligne concernant le site Ă migrer vous trouverez l’ID de celui-ci.
Trouvez l’ID du site Ă migrer
L’identifiant rĂ©cupĂ©rĂ© vous pouvez dĂ©placer tout le contenu du dossier ayant l’id comme nom dans wp-content/uploads
afin de retrouver l’arborescence classique d’un WP.
Ătape 5 – exporter puis importer la base de donnĂ©es
C’est bien beau mais pour le moment, vous avez tout sauf votre contenu…. et dans un site, c’est bien le plus important la base de donnĂ©es.
Pour ce tutoriel, je vais estimer que vous avez le préfixe par défaut « wp_ ».
A l’image des mĂ©dias, WordPress multisite ajoute l’id du site sur certaines tables.
Il va donc falloir exporter toutes les tables ayant l’ID ainsi que les tables wp_user
et wp_usermeta
qui elles n’ont pas d’id car dans un multisite, les utilisateurs sont commun Ă tous les sites.
Personnellement je le fais avec PHPmyAdmin si les tables ne sont pas trop volumineuses… on sĂ©lectionne les tables voulues (exemple: celle du site « 4 » wp_4_ ainsi que les 2 tables d’utilisateurs).
Avant d’importer, supprimez les tables wp_user
et `wp_usermeta` de l’installation classique afin dâĂ©viter les conflits avec les tables que vous allez importer.
Pour l’import dans le WP classique, utilisez Ă©galement l’outils dont vous avez l’habitude.
Vous allez vous retrouver avec des tables en doublons: Celles de votre installation classique et celle que vous venez d’importer qui ont le prĂ©fixe `wp_4_`. Supprimez les tables en doublons de l’installation classique.
Importez vos tables « multisites »
A cette étape, si vous regardez votre base de données dans PHPmyadmin ou autres, vous devez remarquer des tables en wp_
et d’autres en wp_4_
Dans PhpMyadmin, cochez toutes les tables en `wp_4_` puis en bas de la page dans le menu déroulant sélectionnez « Remplacez le préfixe de table »
Si vous dĂ©cidez de modifier le prĂ©fixe de table, n’oubliez pas de corriger le `wp-config.php` en consĂ©quence.
On y est presque!
Ătape 6 – Remplacer les URLs des mĂ©dias en Base de donnĂ©es.
Pour cela j’utilise le script SRDB d’Interconnectit. Vous trouverez un guide de ce script chez mon ami GrĂ©goire Noyelle.
Ici nous allons modifier les urls vers les medias et donc faire un recherche et remplace qui ressemblerait à ça:
Search : https://example.com/wp-content/uploads/site/4/2019/02/mon-image.jpg
Replace : https://example.com/wp-content/uploads/2019/02/mon-image.jpg
Ătape 7 – la base utilisateur
Lors de l’import de la base de donnĂ©es, nous avons importĂ© tous les utilisateurs du multisite… or, il y en a qui n’ont aucun rapport avec le site que vous venez d’extraire.
Je n’ai malheureusement pas encore trouvĂ© une requĂȘte sql qui va bien … si vous avez une idĂ©e, soumettez la moi en commentaire, c’est avec joie que j’amĂ©liorerais ce tutoriel.
Ătape 8 – VĂ©rifications
Normalement, votre site classique est une copie exacte de votre site lorsqu’il Ă©tait dans le multisite.
Selon vos installations, il peut y avoir 2/3 choses Ă rĂ©gulariser. Exemple, remplacer des urls vers des images Ă©crites en dur dans des fichiers css crĂ©Ă© parle constructeur de page Elementor…
Vous avez peut ĂȘtre transfĂ©rer des extensions qui n’ont un intĂ©rĂȘt que dans le cadre d’un multisite…
Ătape 10 – Se reposer!
Ouais y’a pas d’Ă©tape 9 car ça fait bien de sâarrĂȘter sur un chiffre rond! une dizaine tout ça!
Normalement vous venez d’extraire sans encombre un site d’un multisite vers un site classique WordPress… vous avez bien mĂ©ritĂ© une petite mousse, un cafĂ© ou n’importe qu’elle autre chose qui vous fera plaisir!
Et sinon, il y a la méthode simple! (ajout du 20 avril 2019)
Si comme moi vous ĂȘtes adepte de WP-CLI alors ce script vous permettra d’extraire un site du multisite en quelques secondes…
trepmal/blog-extractor
WP-CLI command. Extract single blog from multisite – trepmal/blog-extractor
https://github.com/trepmal/blog-extractor