{"id":830668,"date":"2018-03-09T12:00:28","date_gmt":"2018-03-09T12:00:28","guid":{"rendered":"https:\/\/www.lafactory.com\/blog\/should-theme-and-plugin-developers-build-for-wordpress-multisite-2\/"},"modified":"2022-12-15T12:52:13","modified_gmt":"2022-12-15T12:52:13","slug":"should-theme-and-plugin-developers-build-for-wordpress-multisite-2","status":"publish","type":"post","link":"https:\/\/www.lafactory.com\/blog\/les-developpeurs-de-themes-et-de-plugins-doivent-ils-creer-pour-wordpress-multisite\/","title":{"rendered":"Les d\u00e9veloppeurs de th\u00e8mes et de plugins doivent-ils cr\u00e9er pour WordPress Multisite ?"},"content":{"rendered":"
\u00catre un d\u00e9veloppeur de th\u00e8me ou de plugin est un travail difficile. Entre les mises \u00e0 jour de WordPress, les corrections de bugs, les incompatibilit\u00e9s de versions PHP et le support client, vous avez beaucoup \u00e0 faire. Et n’oubliez pas les nombreux utilisateurs potentiels qui vous demandent si ce site est compatible avec le Multisite<\/em><\/em> C’est une question assez courante, et tous les d\u00e9veloppeurs n’y ont pas forc\u00e9ment pens\u00e9. J’ai donc voulu creuser un peu plus loin dans le d\u00e9veloppement de WordPress Multisite, et plus pr\u00e9cis\u00e9ment, quand vous devez prendre en compte les installations Multisite dans votre processus de d\u00e9veloppement.<\/p>\n Voici ce qu’il en est. Lorsque vous installez WordPress et que vous cr\u00e9ez des sites web, si vous vous demandez si vous devez utiliser WordPress Multisite ?<\/em> la r\u00e9ponse sera bien plus souvent n\u00e9gative<\/strong> que positive<\/strong>. La situation est cependant invers\u00e9e si vous \u00eates dans le d\u00e9veloppement de plugins et de th\u00e8mes. Maura Teal en explique les raisons dans son expos\u00e9 au WordCamp San Diego<\/a> intitul\u00e9 Why Good Developers Don’t Ignore Multisite. <\/em>Essayez de deviner o\u00f9 elle veut en venir.<\/p>\n Vous pouvez consulter notre aper\u00e7u complet de ce qu’est Multisite, mais l’essentiel est le suivant : une installation WordPress alimente un r\u00e9seau de sites<\/strong>. WordPress.com<\/a> en est un exemple concret.<\/p>\n C’est une fonctionnalit\u00e9 vraiment cool, et Maura Teal a raison – vous ne devriez pas l’ignorer. Cependant, si vous voulez que votre plugin ou votre th\u00e8me fonctionne avec, vous devez faire un effort particulier. En effet, les installations multisites partagent une base de donn\u00e9es, et certaines tables de cette base de donn\u00e9es sont partag\u00e9es entre les sites (par exemple, usermeta<\/em>), alors que d’autres ne le sont pas. Vous pouvez \u00e9galement rencontrer des probl\u00e8mes majeurs avec l’activation \u00e0 l’\u00e9chelle du r\u00e9seau, la cr\u00e9ation de tables, la d\u00e9sactivation de plugins et quelques autres difficult\u00e9s.<\/p>\n Alors… pourquoi prendre le temps de r\u00e9soudre ces probl\u00e8mes ?<\/p>\n Eh bien, tout d’abord..<\/p>\n Vraiment. Ce n’est peut-\u00eatre pas le param\u00e8tre par d\u00e9faut, mais les gens l’utilisent. Beaucoup. Dans un \u00e9pisode de WP Water Cooler<\/a>, le panel discute de ce que vous devriez faire apr\u00e8s avoir lanc\u00e9 un plugin WordPress. Dans le cadre de cette discussion, ils ont parl\u00e9 des probl\u00e8mes d’assistance courants et des demandes de fonctionnalit\u00e9s.<\/p>\n La traduction a \u00e9t\u00e9 la premi\u00e8re \u00e0 \u00eatre mentionn\u00e9e. WordPress est m\u00e9ga-mondial, non ? Mais apr\u00e8s cela… La compatibilit\u00e9 multisite a \u00e9t\u00e9 le prochain probl\u00e8me \u00e0 appara\u00eetre. Et elle n’appara\u00eet pas seulement dans les \u00e9pisodes de podcast avec les d\u00e9veloppeurs. <\/strong>La question est affich\u00e9e partout sur les forums de support de WordPress.org.<\/p>\n Oui, la plupart des installations de WordPress sont des installations mono-site. Mais il y a beaucoup d’utilisateurs de WordPress Multisite, et ces webmasters veulent des plugins et des th\u00e8mes qui fonctionnent bien avec leurs versions de WP.<\/p>\n Dans cette m\u00eame conf\u00e9rence WP Water Cooler, Jon Brown de 9Seeds<\/a> a parl\u00e9 de la plus grande raison de d\u00e9velopper pour Multisite : Ce n’est pas si difficile si vous codez pour lui d\u00e8s le d\u00e9but.<\/em><\/p>\n En d’autres termes, si vous testez sur un environnement Multisite et que vous codez en tenant compte de la compatibilit\u00e9 Multisite, il n’y a pas vraiment de travail suppl\u00e9mentaire. La plupart du travail<\/em> r\u00e9el que vous avez \u00e0 faire consiste simplement \u00e0 suivre les meilleures pratiques. Cela peut ajouter un peu \u00e0 votre calendrier g\u00e9n\u00e9ral, mais cela ne va pas doubler votre temps de d\u00e9veloppement ou quoi que ce soit d’aussi radical.<\/strong><\/p>\n C’est l\u00e0 que vous pouvez vous retrouver dans une situation d\u00e9licate. L’ajout de la compatibilit\u00e9 multisite d\u00e8s le d\u00e9but n’est pas si difficile, puisque vous pouvez le planifier. Revenir \u00e0 votre base de code apr\u00e8s coup et essayer d’ajouter la compatibilit\u00e9 multisite va impliquer de d\u00e9m\u00ealer beaucoup de code spaghetti.<\/p>\n Supposons que vous ignoriez la compatibilit\u00e9 multisite parce que vous voulez mettre en place un plugin aussi rapidement que possible. Que se passe-t-il si votre plugin conna\u00eet un succ\u00e8s fulgurant ? C’est g\u00e9nial ! F\u00e9licitations ! Les tickets d’assistance commencent \u00e0 affluer, vous recevez de nombreux commentaires et questions concernant Multisite, et si vous dites non… c’est autant de clients, de revenus et de fid\u00e9lit\u00e9 \u00e0 la marque perdus. Parce que soit vous ignorez ces gens et vous continuez \u00e0 avancer. Soit vous essayez de revenir en arri\u00e8re et de tout r\u00e9adapter.<\/p>\n Aucune de ces deux solutions n’est particuli\u00e8rement attrayante.<\/p>\n Disons que vous \u00eates convaincu de commencer \u00e0 d\u00e9velopper pour Multisite. Mais qu’est-ce que cela implique concr\u00e8tement ?<\/p>\n Bien que cette liste ne soit pas exhaustive, voici quelques-unes des questions les plus importantes \u00e0 prendre en compte lors de la planification de votre d\u00e9veloppement.<\/p>\n \u00c0 propos, il peut y avoir beaucoup de code impliqu\u00e9 dans le d\u00e9veloppement pour Multisite ou pour un seul site, et il y a des gens qui ont d\u00e9j\u00e0 des exemples fantastiques. Vous devriez absolument les consulter. Ce ne sont l\u00e0 que quelques-unes des excellentes ressources que je vous recommande de consulter.<\/em><\/p>\n \u00c9videmment, vous devez toujours vous efforcer de rendre votre code aussi efficace que possible. Mais lorsque vous travaillez avec des installations typiques de WordPress, vous avez un peu plus de marge de man\u0153uvre. Et je ne dis pas que vous le faites, mais vous… pouvez \u00eatre un peu paresseux quand il s’agit d’optimiser les performances. Mettre de l’ordre dans toutes les requ\u00eates de la base de donn\u00e9es ? Mmmm..<\/p>\n Ce genre de raccourcis s’accumule lorsque vos utilisateurs g\u00e8rent 300 sites sur leur r\u00e9seau. Les performances et l’\u00e9volutivit\u00e9 de votre plugin ou de votre th\u00e8me comptent beaucoup plus. Tellement plus que vous pouvez perdre des clients et des utilisateurs si le code n’est pas suffisamment optimis\u00e9.<\/p>\n En raison de la fa\u00e7on dont Multisite fonctionne avec les tables de base de donn\u00e9es, vous devez \u00e9viter de faire des appels \u00e0 des noms de table cod\u00e9s en dur. Chaque site du r\u00e9seau partage une seule base de donn\u00e9es, mais chacun cr\u00e9e ses propres tables. Ainsi, si vous essayez d’ex\u00e9cuter quelque chose sur wp_posts<\/strong>, par exemple, vous allez avoir quelques probl\u00e8mes avec Multisite.<\/p>\n La bonne m\u00e9thode consiste \u00e0 utiliser l’objet global $wpdb<\/strong> pour s’assurer que vous obtenez toujours les noms de table de base de donn\u00e9es corrects pour le site unique et le multisite, quelle que soit la personne qui ex\u00e9cute votre code. Ce n’est pas un changement difficile \u00e0 faire, mais c’est tout de m\u00eame un changement.<\/p>\n Si votre plugin cr\u00e9e une table au cours du processus d’activation, vous devrez r\u00e9p\u00e9ter cette op\u00e9ration sur chaque blog d’une installation Multisite (en supposant que le plugin a \u00e9t\u00e9 activ\u00e9 sur l’ensemble du r\u00e9seau, ce qui est souvent le cas).<\/p>\n Qu’en est-il lorsqu’un nouveau blog est ajout\u00e9 \u00e0 ce r\u00e9seau Multisite alors que votre plugin a d\u00e9j\u00e0 \u00e9t\u00e9 activ\u00e9 ? Dans ce genre de situation, vous devrez vous assurer que votre code ex\u00e9cute la fonction d’activation pour cr\u00e9er la table de base de donn\u00e9es requise chaque fois qu’un nouveau site est ajout\u00e9.<\/p>\n Et bien s\u00fbr, les m\u00eames r\u00e8gles s’appliquent \u00e0 la d\u00e9sactivation et \u00e0 la d\u00e9sinstallation. Assurez-vous de nettoyer votre d\u00e9sordre avant de partir.<\/p>\n Au-del\u00e0 des changements de code sp\u00e9cifiques, vous devez \u00e9galement r\u00e9fl\u00e9chir un peu plus aux options d’interface. Par exemple, y a-t-il une fonctionnalit\u00e9 sp\u00e9cifique de votre plugin que le super administrateur multisite pourrait avoir besoin de d\u00e9sactiver sur l’ensemble du r\u00e9seau ?<\/p>\nPourquoi d\u00e9velopper pour Multisite ?<\/h2>\n
De nombreuses personnes demandent la compatibilit\u00e9 multisite<\/h3>\n
<\/p>\n
<\/p>\n
Ce n’est pas si difficile si..<\/h3>\n
Ajouter la compatibilit\u00e9 multisite plus tard, cependant..<\/h3>\n
Probl\u00e8mes sp\u00e9cifiques \u00e0 prendre en compte lors de la cr\u00e9ation d’un site WordPress multisite<\/h2>\n
\n
1. Mettez l’accent sur l’\u00e9volutivit\u00e9<\/h3>\n
2. Utilisez les noms de table de base de donn\u00e9es appropri\u00e9s<\/h3>\n
3. Pensez \u00e0 l’activation et \u00e0 la d\u00e9sactivation<\/h3>\n
4. Prenez en compte les options d’administration et les autorisations des utilisateurs<\/h3>\n