Introduction
Avez-vous déjà rêvé d’un système où vos utilisateurs WordPress seraient automatiquement partagés entre tous vos sites web ? Un peu comme le fait Google avec ses services ? Eh bien, bonne nouvelle, c’est tout à fait possible ! Dans cet article, nous allons vous guider pas à pas pour créer un écosystème WordPress où vos utilisateurs seront communs à tous vos sites web.
Familiarisation avec la base de données et les fichiers importants
Avant de commencer, il est important de comprendre le fonctionnement de la base de données WordPress. Lorsque vous créez un compte utilisateur, ses informations sont stockées dans deux tableaux : wp_users
et wp_usermeta
. Si vous avez modifié le préfixe de vos tables, les noms peuvent être différents.
Pour explorer votre base de données, vous pouvez utiliser phpMyAdmin. Connectez-vous à phpMyAdmin avec les identifiants fournis par votre hébergeur et sélectionnez la base de données de votre site WordPress. Vous devriez y trouver les tables wp_users
et wp_usermeta
.
Attention : Avant de commencer, il est crucial de sauvegarder vos bases de données au cas où quelque chose se passerait mal.
wp-config.php : le canal de communication avec la base de données
Le fichier wp-config.php
est crucial pour indiquer à WordPress quelles tables utiliser pour gérer les utilisateurs. Pour partager vos utilisateurs entre plusieurs sites web, vous allez devoir modifier ce fichier.
- Ouvrez le fichier
wp-config.php
situé à la racine de votre installation WordPress. - Ajoutez les lignes suivantes juste avant la ligne
/* C'est tout, arrêtez d'éditer ! Bon blog. */
:
define( 'CUSTOM_USER_TABLE', 'wp_users' );
define( 'CUSTOM_USER_META_TABLE', 'wp_usermeta' );
Ces lignes indiquent à WordPress d’utiliser les tables wp_users
et wp_usermeta
pour gérer les utilisateurs, même si d’autres tables avec des préfixes différents existants.
function.php : Le cœur de votre thème WordPress
function.php est un fichier PHP crucial pour votre thème WordPress. Il permet d’ajouter des fonctionnalités personnalisées, de modifier le comportement du thème et d’intégrer des niveaux de services.
Pourquoi l’utiliser ?
- Ajouter des fonctionnalités uniques (shortcodes, widgets, … )
- Modifier le comportement du thème (apparence, interactions … )
- Intégrer des plugins et des services tiers (formulaires,paiements…)
Comment l’utiliser ?
- Localisez le fichier
functions.php
dans votre thème actif. - Ouvrez-le dans l’éditeur de code et ajoutez votre code PHP.
- Enregistrez le fichier et testez les modifications sur votre site web.
Conseils importants
- Utilisez un thème enfant pour vos modifications.
- Employez les crochets WordPress pour exécuter du code à des moments précis.
- Testez et dépannez soigneusement vos modifications.
fonctions.php vous donne le pouvoir de personnaliser et d’étendre votre site WordPress pour répondre à vos besoins spécifiques.
Étape 1: Installer un premier site qui hébergera les utilisateurs à partager
- Installez un nouveau site WordPress. N’oubliez pas de modifier le préfixe des tables lors de l’installation. Par exemple, vous pouvez utiliser
siteweb1_
comme préfixe. - Une fois l’installation terminée, rendez-vous dans le fichier
wp-config.php
de ce site et ajoutez les lignesdefine( 'CUSTOM_USER_TABLE', 'siteweb1_users' );
etdefine( 'CUSTOM_USER_META_TABLE', 'siteweb1_usermeta' );
. - Créez un compte utilisateur sur ce site. Ce compte sera le premier utilisateur partagé entre tous vos sites web.
Étapes 2: Installer un deuxième WordPress avec lequel partager les utilisateurs
- Installez un autre site WordPress. Utilisez un préfixe de table différent, par exemple
siteweb2_
. - Dans le fichier
wp-config.php
de ce site, ajoutez les lignesdefine( 'CUSTOM_USER_TABLE', 'siteweb1_users' );
etdefine( 'CUSTOM_USER_META_TABLE', 'siteweb1_usermeta' );
. - Lancez l’installation WordPress. Vous remarquerez que vous ne pouvez pas créer un nouveau compte utilisateur. C’est normal, car les utilisateurs sont déjà partagés depuis le premier site.
- Connectez-vous au site avec le compte utilisateur créé sur le premier site. Vous constaterez que l’utilisateur est également présent sur ce site.
Rôles et permissions des utilisateurs : synchronisation entre les sites
Problème : Les rôles et permissions ne sont pas partagés par défaut lors de l’utilisation de wp-config.php
. Par défaut, seuls les utilisateurs sont partagés entre les sites, pas leurs rôles et autorisations. Pour partager les rôles et permissions, vous devez ajouter un peu de code PHP.
Solution : Dupliquer les métadonnées utilisateur ( usermeta
) pour synchroniser les rôles et permissions.
Étapes :
- Ouvrez le fichier
functions.php
du thème actif sur votre site WordPress principal. - Ajoutez le code suivant à la fin du fichier, en remplacement
siteweb1_
etsiteweb2_
par vos préfixes de table respectifs :
function export_usermeta( $user_id, $role ) {
// Site expéditeur
$prefix_1 = 'siteweb1_';
// Site receveur
$prefix_2 = 'siteweb2_';
$caps = get_user_meta( $user_id, $prefix_1 . 'capabilities', true );
$level = get_user_meta( $user_id, $prefix_1 . 'user_level', true );
if ( $caps ){
update_user_meta( $user_id, $prefix_2 . 'capabilities', $caps );
}
if ( $level ){
update_user_meta( $user_id, $prefix_2 . 'user_level', $level );
}
}
add_action( 'set_user_role', 'export_usermeta', 10, 2 );
Explication du code :
- La fonction
sync_user_roles
est intervient chaque fois qu’un utilisateur est modifié. - Elle récupère les métadonnées utilisateur du site principal (
get_user_meta
). - Elle parcourt ensuite chaque métadonnée et vérifie si elle concerne un rôle ou une permission.
- Si c’est le cas,elle supprime le préfixe du site principal de la clé de la métadonnée.
- Enfin,elle met à jour la métadonnée sur le site secondaire avec la nouvelle clé et la valeur d’origine.
Résultat :
Désormais,les rôles et permissions des utilisateurs seront automatiquement synchronisés entre vos sites WordPress lors de la création de nouveaux utilisateurs ou de la modification des rôles des existants.
Le code PHP ci-dessus permet de dupliquer automatiquement les rôles et permissions des nouveaux utilisateurs créés sur le premier site vers le second. Vous devez également ajouter un code similaire dans le fichier functions.php
du thème actif du deuxième site, en inversant l’ordre des préfixes siteweb1_
et siteweb2_
.
function export_usermeta( $user_id, $role ) {
// Site expéditeur
$prefix_1 = 'siteweb2_';
// Site receveur
$prefix_2 = 'siteweb1_';
$caps = get_user_meta( $user_id, $prefix_1 . 'capabilities', true );
$level = get_user_meta( $user_id, $prefix_1 . 'user_level', true );
if ( $caps ){
update_user_meta( $user_id, $prefix_2 . 'capabilities', $caps );
}
if ( $level ){
update_user_meta( $user_id, $prefix_2 . 'user_level', $level );
}
}
add_action( 'set_user_role', 'export_usermeta', 10, 2 );
Et si j’ai déjà des utilisateurs que je souhaite partager sur mes WordPress ?
Si vous avez déjà des utilisateurs sur vos sites WordPress existants, vous pouvez les importer dans la base de données du nouveau site. Voici comment procéder :
- Exportez les tableaux
wp_users
etwp_usermeta
de votre ancien site WordPress. Vous pouvez le faire via phpMyAdmin. - Importez les tableaux exportés dans la base de données du nouveau site WordPress. Assurez-vous que le préfixe des tables de votre nouveau site correspond à celui des tables exportées.
- Les utilisateurs seront importés, mais leurs rôles et permissions ne le seront pas. Vous devrez les attribuer manuellement.
Conclusion
Partager vos utilisateurs entre vos sites WordPress est une fonctionnalité puissante qui peut vous aider à améliorer l’expérience utilisateur et à augmenter le trafic sur vos sites. En suivant les étapes décrites dans cet article, vous pouvez facilement créer un écosystème WordPress où vos utilisateurs sont partagés entre tous vos sites web.
Remarque importante
N’oubliez pas de toujours sauvegarder votre base de données avant d’apporter des modifications importantes.
J’espère que cet article vous a été utile. N’hésitez pas à me poser des questions ou à partager vos expériences dans les commentaires !
En bonus
Si vous souhaitez aller plus longe,vous pouvez explorer l’utilisation des plugins WordPress dédiés au partage d’utilisateurs.Ces plugins peuvent vous offrir des fonctionnalités supplémentaires et simplifier encore plus le processus de partage d’utilisateurs.
Voici quelques plugins populaires pour le partage d’utilisateurs WordPress :
- Méta-transfert utilisateur :Ce plugin vous permet de transférer facilement les métadonnées des utilisateurs entre différents sites WordPress.
- Synchroniseur d’utilisateurs WP :Ce plugin synchronise automatiquement les utilisateurs et les groupes d’utilisateurs entre plusieurs sites WordPress.
- Synchronisation des utilisateurs multisites :Ce plugin est spécialement conçu pour synchroniser les utilisateurs entre les sites WordPress multisites.
N’hésitez pas à tester ces plugins pour voir lequel vous convient le mieux.
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.