vendredi 25 septembre 2026

À propos

Contact

Tips

Astuces multisite : administrer un réseau WordPress efficacement

Gérer plusieurs sites sur une même installation WordPress demande des réflexes différents. Voici les astuces qui simplifient vraiment le quotidien.

Par Clément Hadrot • 20 février 2024 • 5 min de lecture • Aucun commentaire
Astuces multisite : administrer un réseau WordPress efficacement

Le mode multisite de WordPress permet de gérer plusieurs sites depuis une seule installation, avec une base de code partagée et des tables dédiées par site. C’est une architecture puissante pour un réseau de sites vitrines d’une même agence, un ensemble de sites de franchise, ou un intranet avec plusieurs espaces. Mais elle demande des réflexes différents de ceux d’un site WordPress classique, en particulier côté développement et administration en ligne de commande.

Cet article rassemble les astuces les plus utiles au quotidien pour qui gère ou développe sur un réseau multisite, en complément de la documentation officielle plus générale sur l’activation du mode réseau.

Changer de contexte avec switch_to_blog

Depuis un contexte d’exécution (un cron, une tâche WP-CLI, un script d’administration réseau), il est souvent nécessaire d’agir sur un site précis du réseau sans y être physiquement connecté. La fonction switch_to_blog() change temporairement le contexte d’exécution :

switch_to_blog( 5 );

$articles = get_posts( array(
    'post_type'      => 'post',
    'posts_per_page' => 10,
) );

restore_current_blog();

L’appel à restore_current_blog() est impératif après chaque switch_to_blog() : l’oublier laisse le script dans le contexte du mauvais site, avec des effets de bord potentiellement sérieux si une écriture en base a lieu ensuite par erreur sur le mauvais site.

Parcourir tous les sites du réseau

Pour exécuter une action sur l’ensemble des sites (une mise à jour de réglage, une vérification), la fonction get_sites() couplée à une boucle avec switch_to_blog() reste la méthode standard :

$sites = get_sites( array( 'number' => 0 ) );

foreach ( $sites as $site ) {
    switch_to_blog( $site->blog_id );
    // Action à exécuter sur chaque site
    restore_current_blog();
}
L'essentiel à retenir : switch_to_blog change de contexte sans changer d'URL ; wp site list liste tous les sites d'un réseau en une commande ; Un plugin réseau se gère différemment d'un plugin activé site par site

Administrer le réseau en ligne de commande

WP-CLI propose une famille de commandes dédiées au multisite, particulièrement utiles pour des opérations en masse difficiles à réaliser depuis l’interface graphique :

wp site list
wp site create --slug=nouveau-site --title="Nouveau site"
wp site option get siteurl --url=exemple.reseau.fr

La commande wp site list donne en un coup d’œil la liste complète des sites du réseau, avec leur identifiant, ce qui évite de naviguer dans l’interface d’administration réseau pour une simple vérification.

Activer un plugin réseau plutôt que site par site

Un plugin peut être activé de deux façons différentes sur un multisite : réseau par réseau (actif automatiquement sur tous les sites, présents et futurs), ou site par site (chaque administrateur de site l’active individuellement). Le choix a un vrai impact organisationnel :

wp plugin activate mon-plugin --network

Un plugin activé au niveau réseau n’apparaît plus dans la liste des extensions activables individuellement par les administrateurs de site, ce qui garantit une cohérence technique sur l’ensemble du réseau, un choix souvent pertinent pour un plugin de sécurité ou de conformité commun à tous les sites.

Partager des données entre les sites du réseau

Certaines données ont vocation à être partagées entre tous les sites d’un réseau : une liste d’utilisateurs communs (native au multisite), un jeu de réglages globaux, ou un ensemble de contenus dupliqués automatiquement. Pour des réglages globaux, une option stockée sur le site principal, lue via switch_to_blog(), reste une solution simple :

function get_reglage_reseau( $cle ) {
    switch_to_blog( get_main_site_id() );
    $valeur = get_option( $cle );
    restore_current_blog();
    return $valeur;
}

Gérer les domaines personnalisés

Un réseau multisite en configuration sous-domaines ou sous-répertoires reste simple à administrer nativement. Dès qu’un site du réseau doit répondre sur un domaine complètement différent, l’extension officielle « WordPress MU Domain Mapping » historique a été largement remplacée par une gestion native depuis les versions récentes de WordPress, via la fonction wp_insert_site() et la configuration du domaine directement en base, sans plugin dédié dans la majorité des cas modernes.

Pièges fréquents à éviter

  • Oublier restore_current_blog() après un switch_to_blog(), avec des effets de bord difficiles à diagnostiquer
  • Confondre les tables préfixées par identifiant de site (wp_2_posts) et les tables globales du réseau (wp_users, wp_blogs)
  • Activer un plugin en réseau alors qu’il n’a été testé que sur un seul site, sans vérifier sa compatibilité multisite
  • Oublier qu’un utilisateur du réseau peut avoir des rôles différents sur chaque site auquel il est rattaché

Sur un réseau de plusieurs dizaines de sites, une simple boucle foreach avec switch_to_blog() mal refermée peut laisser une tâche planifiée écrire silencieusement sur le mauvais site pendant des semaines.

En résumé

Le multisite WordPress reste une architecture solide pour mutualiser l’administration de plusieurs sites, à condition de bien maîtriser ses spécificités : le changement de contexte avec switch_to_blog(), la distinction entre tables globales et tables par site, et les commandes WP-CLI dédiées qui simplifient considérablement les opérations en masse sur l’ensemble du réseau.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi