Tout d'abord, Multisite n'est pas ce que je recherche. J'ai 5 sites Web utilisant Wordpress tous sur des domaines distincts pour lesquels j'aimerais activer les comptes d'utilisateurs. J'ai besoin que les données des utilisateurs soient partagées sur l'ensemble du réseau et lorsqu'un utilisateur crée un compte, il aurait également un accès instantané à tous les autres sites Web. Ce que j'essaie de faire n'est pas recommandé par Wordpress lors de l'utilisation de Multisite:
Si vous prévoyez de créer des sites fortement interconnectés, qui partagent des données ou partagent des utilisateurs, un réseau multisite n'est peut-être pas la meilleure solution. - http://codex.wordpress.org/Before_You_Create_A_Network (1er paragraphe, 3e phrase)
J'ai essayé d'utiliser le "tour de table utilisateur partagé" comme mentionné ici http://wordpress.org/support/topic/multiple-sites-same-users-how et ici http://xentek.net/articles/528/ mise en œuvre-du-wordpress-shared-users-table-trick / et un certain nombre d'autres endroits ... le problème est que cette information a 2 à 7 ans et j'utilise Wordpress 3.5.1 et cette "astuce" ne fonctionne pas semble pas fonctionner.
J'ai essayé d'insérer ce code dans wp-config autour de la $table_prefix
ligne.
define('CUSTOM_USER_TABLE', 'wp_users');
define('CUSTOM_USER_META_TABLE', 'wp_usermeta');
Pour faire court, je ne pense pas que cette astuce fonctionne plus car je ne peux pas du tout me connecter au deuxième site du côté administrateur.
Avez-vous des suggestions sur la meilleure façon de lier ces données?
CUSTOM_USER_TABLE
ne fonctionnerait pas ... Voyez s'il y a quelque chose ici: wordpress.stackexchange.com/search?q=CUSTOM_USER_TABLERéponses:
D'accord, tout d'abord, je me sens comme un idiot, bien que pour ma défense la plupart des articles qui en parlent ne mentionnent pas un détail très crucial pour faire fonctionner ce travail. La réponse est que vous devez définir l'autorisation pour au moins un administrateur dans la base de données. Ces informations peuvent être trouvées dans le Codex ici: http://codex.wordpress.org/Editing_wp-config.php#Custom_User_and_Usermeta_Tables
Après avoir configuré le fichier wp-config.php, il est impératif que vous apportiez une modification au champ de la table wp_capabilities et à la colonne meta_value du champ de la table usermeta principale (dans mon cas, wp_usermeta). Pour ce faire, via phpMyAdmin.
Remarque: effectuez cette opération pour qu'au moins un administrateur utilisateur se connecte. Vous pouvez ajuster tous les autres rôles utilisateurs / administrateurs à partir du backend une fois que vous êtes entré.
Pour chaque site Web créé, ce nouveau préfixe de site doit avoir le rôle d'utilisateur administrateur.
Dans mon cas, car je ne travaille que sur 2 sites pour le moment, cela ressemble à ceci:
La première ligne définit les autorisations pour le préfixe de table par défaut (dans ce cas wp_), et la deuxième ligne définit les autorisations pour le deuxième site Web (dans ce cas avec le préfixe tbs_).
Merci à brasofilo pour le commentaire qui m'a fait creuser un peu plus pour enfin résoudre mon problème!
J'espère que cette réponse pourra aider d'autres personnes qui avaient le même problème que moi.
la source
Lors du partage de wp_users et wp_meta, il y a un autre problème, une autre installation de wordpress reconnaît les utilisateurs mais ne reconnaît pas les rôles des utilisateurs provenant de l'autre site Web . Le rôle apparaît comme indéfini.
Donc, vous avez édité votre wp-config.php comme requis:
Je pense que la façon la plus simple de le faire, sans bricoler la base de données, est d'utiliser des internes wp. Lors de la connexion, il est possible d'attribuer un rôle. Disons que nous avons besoin du rôle de contributeur pour tout le monde et du rôle d'administrateur pour l'utilisateur «superman».
Ainsi, les utilisateurs provenant du site Web initial se voient attribuer le rôle de «contributeur» lorsqu'ils se connectent.
http://codex.wordpress.org/Class_Reference/WP_User
la source
J'ai dû créer une nouvelle ligne:
meta_key='tbs_capabilities' meta_value='a:1:{s:13:"administrator";b:1;}'
et
user_id=1
. La méthode que vous avez décrite n'a pas fonctionné.la source