Les frameworks ont beaucoup évolué ces dernières années et disposent d’écosystèmes riches permettant de développer toutes sortes de sites et applications web. Notre agence utilise WordPress ; quel est l’intérêt alors que ce CMS est souvent perçu à tort comme un simple moteur de blog ?
L’interface d’administration est sans doute le plus gros argument en faveur de WordPress. Facile à prendre en main par les utilisateurs, elle leur permet de se concentrer sur la rédaction de contenu.
Elle offre de base plusieurs fonctionnalités très pratiques comme la gestion des brouillons, la sauvegarde automatique, la retouche d’images… Tout ceci serait coûteux à faire développer sur-mesure.
Elle permet également de gérer différents workflows de publication grâce aux rôles utilisateurs (auteur, éditeur, administrateur) et aux états de contenus (brouillon, demande de relecture, publié). Il est évidemment possible de paramétrer ce fonctionnement selon les besoins du site.
Enfin, il est assez simple pour un développeur de créer des écrans de configuration sur-mesure pour permettre aux utilisateurs de paramétrer le site.
Souvent décrié par certains développeurs qui n’en connaissent pas les possibilités, WordPress a évolué et offre de nombreux arguments permettant de développer proprement.
Un reproche adressé à WordPress est que les contenus sont saisis dans un champ unique. Cela peut rendre les mises à jour un peu moins simples car les utilisateurs doivent modifier les contenus existants lorsque le style du site est modifié.
WordPress permet de créer des « custom post types » et des « custom fields » qui peuvent servir à définir un modèle de données parfaitement adapté aux besoins du site. Le plugin Advanced Custom Fields (ACF) en facilite l’utilisation. Il fournit plusieurs champs supplémentaires comme le répéteur ou la galerie d’images, ainsi que des fonctions simplifiant l’utilisation de ces contenus et champs personnalisés.
Par exemple, on peut avoir un type de contenu « Recette » avec une liste d’ « Ingrédients » et d’ « Étapes », chacun contenant un champ texte avec leur description et une image.
Il est également possible de lier entre eux les types de contenu, à la manière d’un « belongs to / has many » que l’on retrouve dans les ORM comme Doctrine ou ActiveRecord.
Ce système facilite le travail des utilisateurs qui peuvent saisir le contenu sans se préoccuper de sa mise en forme. Il permet également aux développeurs de se concentrer sur l’apparence et les fonctionnalités du site en sachant que les données saisies seront formatées correctement.
Enfin, WordPress stocke beaucoup d’informations en base de données. Cela rend un peu plus difficile le versioning car la configuration n’est pas toujours effectuée dans le code. ACF permet de stocker la configuration des types de contenus et champs personnalisés dans des fichiers qui peuvent être versionnés.
On retrouve ainsi les possibilités offertes par un développement sur-mesure basé sur un framework, tout en bénéficiant de l’interface d’administration existante.
Parfois les besoins du site sont plus conséquents et demandent des fonctionnalités qui sortent du cadre de WordPress. Dans ce cas, il est possible d’utiliser l’API REST de WordPress pour récupérer le contenu et l’afficher dans un système réalisé avec un autre outil comme un framework.
Cela évite de devoir développer un moteur de contenu avec l’interface de saisie. Ce temps peut être consacré aux développement de fonctionnalités plus utiles pour le site.
Les développeurs peuvent utiliser leur framework favori pour les développements sur-mesure, et les utilisateurs bénéficient de l’interface d’administration de WordPress pour leur travail éditorial.
Il existe près de 50 000 plugins pour WordPress. Certes, une partie est de qualité douteuse. C’est le cas pour tout écosystème riche, ce problème se retrouve sur tous les grands frameworks. À peu près tout existe, le tout est de savoir les choisir.
Pour la plupart des fonctionnalités recherchées, que ce soit pour le partage sur les réseaux sociaux, un formulaire de contact, un site multilangues ou une gestion complète de site e-commerce, de nombreux plugins de qualité sont disponibles. Il faut bien en vérifier l’adéquation avec les besoins, et certains demandent une part de développement pour les « brancher » au site. Cela reste bien moins coûteux en temps que de développer entièrement une fonctionnalité et ce temps économisé peut être réinvesti dans des postes générateurs de valeur comme le SEO.
Un autre reproche fait à WordPress est de privilégier l’utilisation de l’interface d’administration pour paramétrer le site. Cela empêche les développeurs de scripter des tâches répétitives.
Le plugin WP-CLI permet de pallier ce problème. On peut l’utiliser pour créer ses propres scripts de déploiement, sauvegarde, import… Encore une fois, on retrouve les possibilités offertes par un framework.
WordPress est sorti en 2003 et conserve un certain nombre de défauts de jeunesse dans son code. À l’époque la version de PHP disponible n’offrait pas toutes les possibilités actuelles. Il a de plus évolué par rapport à sa vocation initiale de moteur de blog et comporte donc une part de dette technique.
Ceci étant, le développeur est relativement protégé de cet héritage. La documentation est très fournie et WordPress s’adapte plutôt bien aux techniques de programmation modernes. Il est compatible avec la version 7 de PHP. Des outils comme WordPress Packagist permettent d’utiliser le gestionnaire de paquets Composer. Pour les plus exigeants, il existe des outils complets basés sur WordPress comme Roots qui propose :
WordPress est utilisé par 25% des sites. Ce chiffre vertigineux en fait une cible de choix pour les attaques. Le sujet est pris très au sérieux par la communauté ; de nombreux plugins permettent par exemple de bloquer les tentatives de connexion frauduleuses et de bannir les adresses IP.
WordPress possède également un mécanisme de mise à jour automatique. Dès qu’une faille de sécurité est corrigée, un correctif est publié. WordPress se met à jour automatiquement et prévient l’administrateur. Il est donc plus sécurisé qu’un site développé avec un framework dont les mises à jour de sécurité ne sont pas appliquées régulièrement.
Les développeurs de WordPress attachent une grande importance à la rétro-compatibilité du code. Ceci garantit qu’un site va bénéficier des mise à jour pendant longtemps. Lorsque des migrations sont nécessaires, elles sont annoncées à l’avance et tout est fait pour en minimiser l’impact.
De plus, sa grande popularité fait qu’il est relativement facile de trouver des développeurs. Comme pour les plugins, on trouve de tout. Il faut s’assurer des compétences et de l’attachement au respect des bonnes pratiques. Une équipe spécialisée dans le développement sur-mesure saura tirer parti des fonctionnalités offertes par WordPress pour construire un site performant, adapté au métier et facile à administrer par le client.
WordPress est donc un outil formidable. Il peut être utilisé tel quel pour de petits sites, ou augmenté de différents plugins et de développements sur-mesure pour un site de grande envergure. Il peut servir de base de contenu pour la partie éditoriale d’une application web. Son interface d’administration et la richesse de son écosystème permettent de concentrer les développements sur les fonctionnalités à forte valeur ajoutée.