Catégories : Expertise TechniquePar Commentaires fermés sur WordPress : un CMS sur-mesure

En naviguant sur le Web, surtout quand on travaille dans le domaine, difficile d’échapper à WordPress. Et pour cause, il suffit de jeter un œil aux statistiques pour comprendre à quel point éviter ce CMS est devenu difficile : plus de 42% des sites sont développés avec WordPress (source : https://w3techs.com/) et chaque nouvelle version est téléchargée plusieurs dizaines de millions de fois ! (La récente version 5.8 ayant déjà dépassé les 50 millions de téléchargements, source : https://wordpress.org/download/counter/)

Vous l’aurez compris, même si vous croyez ne rien savoir de WordPress, vous y avez été exposé sans le savoir un très grand nombre de fois, au moins en tant que simple spectateur. Je peux même vous dire que vous l’avez fait aujourd’hui même… vu que vous vous trouvez sur un site créé avec WordPress.

Qu’est-ce que c’est exactement et comment ça marche ?

WordPress est un CMS donc, un Content Management System. Il s’agit littéralement du cœur de votre site (si vous l’utilisez pour cela, mais ce n’est pas un usage exclusif) qui va s’occuper… et bien d’à peu près tout en fait. Il va se charger de gérer les pages (URLs incluses et modifiables selon votre bon vouloir), les articles, la bibliothèque de médias mais aussi les utilisateurs.

Mais sur quelles technologies se base WordPress en fait ? Et bien en toute logique, vu qu’il s’agit du CMS le plus utilisé du Web, il n’est pas illogique de se dire qu’il utilise le langage sever-side le plus utilisé. WordPress fonctionne en effet sous PHP, version 7 généralement mais est parfaitement compatible depuis déjà un an avec PHP 8.

Pour fonctionner, quelle que soit son utilisation, WordPress a également besoin d’une base de données fonctionnant sous MySQL. En outre, WordPress est implémenté directement avec une librairie JavaScript très populaire : jQuery.

Puis-je vraiment en faire ce que je veux ?

Quand on s’arrête aux premiers aperçus de WordPress, on pourrait s’imaginer qu’il ne s’agit que d’un simple générateur de blogs. Et dans les faits… on n’aurait pas tout à fait tort à dire vrai. En effet, basiquement parlant, WordPress ne permet pas de faire grand-chose, votre site comportant uniquement les éléments suivants : des pages, des articles, des commentaires, quelques médias et liens ainsi qu’un système de gestion des utilisateurs. Forcément, on n’imagine pas aller très loin avec cela. Mais c’est sans compter sur deux briques importantes de l’édifice WordPress : les thèmes et les plugins.

Les thèmes, bibliothèque visuelle, mais pas que

Quand WordPress s’installe, il met en place par défaut un thème. Ce thème, c’est lui qui décide de quoi votre site aura l’air. Basiquement, on serait tenté de croire que ce n’est, au final, qu’une simple feuille de style, mais ce serait une grave erreur.

Si WordPress est le cœur de votre site, le thème, c’est un peu le cerveau. C’est dans le thème que vous trouverez tous les templates de pages mais c’est aussi là que tout développement spécifique relatif à votre site doit se trouver. Vous pourrez par exemple y développer un modèle MVC avec vos classes et vos vues, incluant donc toute votre logique métier.

C’est aussi le thème qui va vous permettre de créer plus de contenus, ou plutôt, plus de types de contenu. Simple exemple, disons que pour votre site, en plus de pages basiques et d’articles, vous ayez envie d’avoir une frise chronologique, une liste des dates importantes de la société de votre client. Vous pouvez très bien créer ce que l’on appelle un custom post type qui fera de chaque date une sorte d’article mais dont la gestion en back office et en front office sera séparée des articles classiques. Et cela, c’est le thème qui s’en charge. Il vous donne également la main pour modifier facilement n’importe quel template natif, comme celui des articles bien sûr mais aussi celui de la page d’erreur.

Ainsi, parmi les dizaines de milliers de thèmes existants (pas tous gratuits certes), vous en trouverez beaucoup mettant en avant non seulement le design de votre site mais aussi les fonctionnalités associées, comme des thèmes spécialement conçus pour transformer votre site en réseau social par exemple.

Les plugins, ou comment ne pas réinventer la roue

« Ne perdez pas de temps à réinventer la roue. » Voici une leçon très importante qu’il vaut mieux retenir afin de gagner du temps de développement. Et avec WordPress, cela est particulièrement approprié.

Comme expliqué plus haut, vous pouvez dans votre thème créer des fonctionnalités spécifiques pour votre site… mais est-ce bien nécessaire ? Et si cette fonctionnalité existait déjà ?

Pour le savoir, ce n’est que rarement une perte de temps, allez faire un tour dans la bibliothèque monstrueuse de plugins de WordPress ! Et je pèse mes mots en disant cela, à l’heure où j’écris ces lignes, il y a actuellement environ 59 000 plugins de disponibles, et je ne parle que des gratuits.

A cela s’ajoute un nombre incalculable de plugins payants. A moins de partir dans des besoins très spécifiques au métier, il est très rare de devoir développer de zéro.

Que peut-on faire avec un plugin ?

Impossible de tout lister, mais on peut néanmoins évoquer certaines fonctionnalités pouvant en intéresser plus d’un. Multilinguisme, commerce, réseau social, connexion en SSO, sécurité, performance, RGPD, SEO… À moins de vouloir cibler une fonctionnalité spécifique, la bibliothèque de plugins est suffisamment vaste pour que vous ayez les réponses à vos besoins principaux dans une grande partie des cas.

Notez toutefois que, comme toute bonne chose, il ne faut pas en abuser. En effet, si vous installez et activez une centaine de plugins différents sur votre site, il y a des chances que les performances de celui-ci en pâtissent. Bien sûr cela dépend du type de plugin. L’un des plugins que j’utilise régulièrement, qui limite les tentatives de connexion au back-office, n’a pratiquement aucune incidence sur les performances du site puisqu’il intervient uniquement à un endroit très précis de ce dernier. Mais d’autres comme les plugins de gestion des cookies (pour le RGPD) ou encore des plugins de multilinguisme utilisés sur toutes les pages, génèrent une forte accumulation de plugins qui peut avoir un effet négatif. Il convient donc de choisir avec parcimonie les plugins de votre site. Mieux vaut parfois un plugin qui semble plus gourmand mais qui prend en charge les fonctionnalités de trois ou quatre autres plugins plus légers. Et c’est sans compter la maintenance plus volumineuse qu’implique une longue liste de plugins, chaque mise à jour devant, par prudence, être suivie par un petit check-up du site afin de s’assurer qu’elle n’a pas causé plus de problème qu’elle n’en résout. Imaginez si vous deviez le faire pour une centaine de plugins…

Savoir vivre au crochet

Mais si un plugin (ou un thème) répond à 90% des besoins de vos clients, comment combler les 10% restants ? Il va évidemment falloir se mettre au travail dans de tels cas et c’est là qu’une recherche et une étude préalable sont essentielles car, vous savez ce qu’on dit, « il y a le bon et le mauvais plugin ».

Le bon plugin et le mauvais plugin vont tous deux remplir leur rôle, mais le bon plugin aura été développé avec la notion de hook. Il s’agit, pour faire simple, de positionner dans le code du plugin des points d’accroche qu’un développeur pourra utiliser pour modifier sans risque certains comportements du plugin. Prenons exemple très basique : vous avez un plugin qui ajoute un lien quelque part sur votre site, seulement le lien ne s’ouvre pas sur un nouvel onglet. Avec un hook, vous pouvez intercepter la création du lien et la modifier pour y inclure ce qu’il faut pour qu’il s’ouvre dans un nouvel onglet.

Ce système est fondamental dans l’univers WordPress car il permet de personnaliser beaucoup de choses SANS avoir à toucher au code source. Bien que possible puisque WordPress et, en règle générale les plugins, sont open-source, il s’agit d’une très mauvaise pratique. A la moindre mise à jour (fortement conseillée en générale pour des raisons de sécurité), les modifications sauteraient et il faudrait tout recommencer, là où le système de hook met vos modifications hors de portée des mises à jour automatiques. Attention cependant aux problèmes lorsqu’un développeur décide de modifier un hook dans une mise à jour.

Mais peut-on l’utiliser pour tout type de projet (genre, pas du PHP) ?

Bien sûr, la question se pose. Et la réponse est un peu évidente : cela dépend de votre projet. Mais allons au plus simple et voyons en quoi WordPress pourrait être utile à un projet développé de base en .NET. Pour ce projet, vous développez une application mobile par exemple et vous n’avez pas besoin d’un site internet complet. Toutefois, WordPress peut vous intéresser en tant que « simple » back-office afin de permettre à vos clients de gérer leurs données (création d’utilisateurs, de produits ou autres). Il peut également vous permettre de gagner du temps en gérant un seul aspect de votre projet, géré nativement par WordPress, comme la section actualités par exemple. Pour intégrer WordPress dans votre projet, vous avez plusieurs solutions.

La première c’est d’utiliser WordPress comme stockeur de données. Vous l’utilisez comme vous le feriez pour un site web en PHP, en créant des articles, des utilisateurs ou tout autre contenu personnalisé. Et votre application mobile consultera ensuite WordPress grâce à son API REST incluse nativement dans le cœur du système de WordPress vous renvoyant toutes les données que vous voulez au format JSON.

La deuxième solution est d’utiliser WordPress uniquement comme interface utilisant votre API. Cette méthode est toutefois plus gourmande en développement puisque vous allez devoir créer toutes les pages en back-office pour chaque route de votre API (listes de données, ajout, modification, suppression, etc). Mais de cette façon, votre back-office sera vraiment sur-mesure et adapté à vos besoins et ceux de vos clients. Il pourra disposer du même niveau de sécurité que votre API en ajoutant, par exemple, un petit plugin de SSO pour vous connecter au back-office via Identity Server par exemple.

Concernant l’installation en elle-même, nul besoin d’un serveur spécifique, vous pouvez tout-à-fait installer WordPress sous Azure via un AppService configuré avec un stack PHP.

Ne ratez plus aucunes actualités avec la newsletter mensuelle de SoftFluent