web-dev-qa-db-fra.com

Est-il possible de disposer d'un réseau de sites BuddyPress, comme WordPress MU, avec authentification unique?

Nous cherchons à créer un réseau de sites BuddyPress qui partagent une conception commune, un thème commun et un contenu commun, mais la même base d'utilisateurs sur tous les sites du réseau.

Chaque utilisateur "appartiendra" à un site réseau. Ainsi, même si les utilisateurs peuvent parcourir les éditions de Londres, New York et Sydney, ils devront appartenir à l'un de ces sites:

  • ldn.mainsite.com
  • nyc.mainsite.com
  • syd.mainsite.com

Chaque site BuddyPress basé sur un sous-domaine présentera un contenu différent en fonction de l'emplacement sur lequel le site est basé. La connexion au réseau signifie qu'ils sont connectés à tous les sites (SSO).

Est-ce possible avec WordPress, BuddyPress et/ou WordPress MU ou cela nécessitera-t-il un travail important au-dessus du code existant? (Ou serait-il préférable de le faire à partir de rien au-dessus de quelque chose d'autre?)

1
abitgone

BuddyPress est compatible avec une configuration WordPress multisite. Il y a plusieurs façons de le configurer.

Par défaut, les données de BuddyPress sont stockées sur l’ensemble du réseau. En règle générale, cela signifie que, dans le réseau de sites, un seul site est dédié aux fonctionnalités/contenus de BuddyPress - vous pourriez penser à cela en tant que site "communautaire" au sein d'un réseau plus large de blogs. Cependant, cela ne semble pas être exactement ce que vous recherchez. Donc, il y a quelques autres options.

La première option est un indicateur de partenaire appelé BP_ENABLE_MULTIBLOG. Lorsque cette option est activée, le contenu de BuddyPress peut être consulté sur n’importe quel site de l’installation - tel que ldn.example.com, nyc.example.com, etc. Toutefois, le contenu est toujours stocké de manière globale. En d'autres termes, même si vous pourrez afficher des groupes, des profils, etc. sur de nombreux sites différents, , ils seront tous les mêmes groupes, profils, etc. . Pour en savoir plus sur BP_ENABLE_MULTIBLOG, consultez BuddyPress Codex, où j’ai récemment essayé d’expliquer le cas d’utilisation (paramètre souvent mal compris): http://codex.buddypress.org/bp_enable_multiblog/

Si vous souhaitez avoir un contenu séparé d'un site à un autre - afin que les groupes/profils de London/etc soient répertoriés séparément des groupes/profils de NYC/etc., etc., il existe une deuxième option appelée BP Multi-Network. Ceci est une fonctionnalité assez nouvelle dans BuddyPress (depuis BP 1.5), et nécessite quelques plugins réseau supplémentaires (un pour créer plusieurs réseaux, comme Networks + http://wpebooks.com/networks/ , et un pour activer le BP. Fonctionnalité multi-réseaux au sein de ces réseaux https://wordpress.org/extend/plugins/bp-multi-network/ ). En savoir plus sur cette fonctionnalité ici: http://wpmututorials.com/news/new-features/multiple-buddypress-social-networks/

Si vous voulez quelque chose d'un peu plus sophistiqué, où du contenu BP (par exemple, des données de profil et des amitiés) est partagé entre des sites, alors que d'autres dépendent du site (comme des groupes), vous pouvez le faire, mais cela prendra une foire. quantité de personnalisation. La configuration que je viens de décrire pourrait être réalisée grâce à une combinaison de BP_ENABLE_MULTIBLOG et d'une utilisation judicieuse des métadonnées de groupe (de sorte que certains groupes portent la balise 'London', etc.). Voici un plugin qui pourrait vous mener quelque part avec cette idée: https://wordpress.org/extend/plugins/buddypress-group-tags/

4
Boone Gorges

Le problème que vous décrivez est en fait exactement ce que Wordpress MU (que je crois maintenant appelé Wordpress Multisite) a été conçu pour gérer. Donc, la réponse brève est la suivante: tant que tout est sur un sous-domaine, vous ne rencontrerez aucun problème de connexion unique si vous utilisez Wordpress Multisite.

Pour la réponse longue, continuez à lire:

Avec Wordpress Multisite, toutes les informations utilisateur sont stockées dans une seule table (wp_users), tandis que les données spécifiques au site, telles que les publications, les commentaires et les tags, sont préfixées dans la base de données avec l'identifiant du site/blog (quelque chose comme wp_2_posts où 2 correspond au site/blog). id).

La session de connexion est partagée entre des sites ayant le même domaine racine (c.-à-d. Que ldn.mainsite, nyc.mainsite et syd.mainsite partagent tous une session de connexion), ce qui signifie qu'un utilisateur qui se connecte à l'un de ces sites pourra pour passer à un autre site du même sous-domaine sans avoir à vous reconnecter (SSO à son meilleur).

MAIS voici le problème: si un site de votre réseau utilise un domaine racine différent, alors que les informations de connexion de l'utilisateur (nom d'utilisateur/mot de passe) sont partagées (car elles utilisent toujours la table wp_users), la session de connexion n'est pas partagé de sorte que l'utilisateur devra se reconnecter.

En ce qui concerne la fonctionnalité "appartenance" ... Je ne suis pas tout à fait sûr de ce que vous entendez par ceci, mais je crois (en mettant l'accent sur la conviction) que Wordpress garde la trace des sites de votre réseau auxquels un utilisateur s'est explicitement connecté. et s’ils se sont connectés à un site, ils apparaîtront sous la liste admin> utilisateurs du site ainsi que l’administrateur réseau> utilisateurs.

0
drebabels