En bref
- Un développeur WordPress ne se limite pas à installer des thèmes WordPress et des plugins WordPress. Il sait lire du code, déboguer une erreur et choisir la bonne architecture.
- HTML et CSS permettent de contrôler le rendu. PHP, MySQL et SQL permettent de produire des fonctionnalités qui manipulent réellement les données.
- La programmation WordPress repose sur les hooks, les Custom Post Types, les taxonomies, les métadonnées et l’API du CMS. Modifier le cœur de WordPress reste une mauvaise idée.
- Un portfolio crédible montre des projets testables, documentés et maintenables. Trois réalisations propres valent mieux que quinze démos copiées d’un tutoriel.
- L’optimisation WordPress, la sécurité WordPress et la relation client font partie du travail. Un formulaire de devis qui fuit les données ou un site à 5 secondes de chargement ne tient pas en production.
Maîtriser les compétences WordPress avant de proposer du sur-mesure
Le vrai basculement arrive quand un client demande une fonctionnalité que ni Elementor, ni WooCommerce, ni une extension trouvée en dix minutes ne couvrent correctement. Un calcul de prix selon une zone géographique, un espace membre avec plusieurs niveaux d’accès ou un annuaire avec filtres métier sortent vite du cadre du « clic-clic » dans l’administration.
Réussir WordPress impose donc de séparer deux niveaux. Le premier consiste à administrer un site. Le second consiste à comprendre ce que WordPress exécute derrière l’écran. Un développeur WordPress intervient à ce second niveau. Il sait expliquer pourquoi un template ne se charge pas, pourquoi une requête retourne zéro résultat ou pourquoi une mise à jour de plugin casse une page.
HTML et CSS pour contrôler ce que le navigateur affiche
HTML décrit le contenu. Une balise <h2> indique un titre de niveau deux, <p> un paragraphe et <img> une image. Ce n’est pas un langage de programmation, car HTML ne prend pas de décision. Il donne une structure que le navigateur interprète.
CSS définit le rendu de cette structure. Il gère les espacements, les polices, les couleurs, les grilles, les comportements mobiles et les états au survol. Un thème qui affiche correctement une maquette sur desktop mais déborde sur un iPhone révèle souvent un problème de CSS, pas un problème WordPress.
Le bon exercice consiste à ouvrir les outils de développement du navigateur avec F12, puis à modifier temporairement une règle CSS. Repère une carte produit qui possède une marge trop large, teste margin, padding, display: grid et les media queries. Cette manipulation apprend davantage qu’un empilement de snippets collés dans « CSS additionnel ».
Les ressources MDN restent une base fiable pour comprendre les propriétés CSS et le comportement des éléments HTML. Les tutoriels vieillissent vite quand ils reposent sur des constructeurs visuels. Les standards du navigateur changent moins brutalement et servent dans tous les projets de développement web.
PHP, MySQL et SQL pour manipuler les données du site
PHP s’exécute sur le serveur avant que le navigateur reçoive la page. WordPress est largement construit avec ce langage. Lorsqu’un visiteur ouvre un article, PHP récupère les données, applique les règles du thème, lance les extensions actives et génère le HTML final.
MySQL stocke les données du site dans une base de données. Articles, utilisateurs, commandes WooCommerce, réglages et métadonnées y sont enregistrés. SQL est le langage qui sert à interroger cette base. WordPress fournit ses propres fonctions et API pour éviter d’écrire des requêtes SQL brutes dans la plupart des cas.
Un développeur débutant gagne du temps en commençant par les variables, les conditions, les boucles, les fonctions, les tableaux et la gestion des erreurs PHP. Un code qui affiche une remise selon le montant d’un panier utilise déjà ces mécanismes. Si le panier dépasse 100 euros, une condition applique un pourcentage. Si plusieurs produits répondent à un critère, une boucle les traite un par un.
Copier un extrait PHP depuis un forum sans savoir ce qu’il fait finit souvent dans le fichier functions.php, avec une erreur blanche ou une administration inaccessible. Le fichier wp-config.php permet d’activer le débogage via WP_DEBUG, mais cette option ne doit pas afficher les erreurs aux visiteurs sur un site public. Les logs serveur et le fichier debug.log servent à chercher la cause réelle.
| Compétence | Usage concret dans WordPress | Exercice utile |
|---|---|---|
| HTML | Structurer un template d’article ou une fiche produit | Reproduire le balisage d’une page sans builder |
| CSS | Adapter une grille, un menu mobile ou un bloc Gutenberg | Corriger un affichage cassé sous 768 px |
| PHP | Créer une règle métier ou un shortcode | Afficher un message selon le rôle connecté |
| MySQL et SQL | Comprendre le stockage et diagnostiquer une donnée absente | Identifier les tables liées à WooCommerce |
Le socle technique évite une erreur très fréquente. Apprendre les fonctions WordPress avant de savoir lire une condition PHP donne l’impression d’avancer, puis bloque dès que le besoin sort d’un tutoriel.

Comprendre la programmation WordPress sans toucher au cœur du CMS
WordPress est publié sous licence GPL. Son code peut être étudié, modifié et redistribué. Cette ouverture ne donne pas le droit de modifier les fichiers du cœur sur un site client. Un changement dans wp-includes ou wp-admin disparaît à la mise à jour suivante, parfois avec un comportement encore plus difficile à diagnostiquer.
La programmation WordPress utilise des points d’extension prévus pour ça. Les hooks sont les plus connus. Une action permet d’exécuter du code à un moment donné. Un filtre permet de modifier une valeur avant son affichage ou son traitement. add_action() et add_filter() deviennent rapidement des fonctions familières.
Créer une extension plutôt que surcharger un thème
Une règle métier ne doit pas vivre dans un thème. Un thème gère l’apparence. Une extension gère une fonctionnalité qui doit survivre à un changement graphique. Si un site possède un système de réservation, une synchronisation CRM ou un calcul de commission, le code doit rester actif après le passage de Kadence à un thème sur mesure.
Le bon point de départ est un plugin maison très petit. Crée un dossier dans wp-content/plugins, ajoute un fichier PHP principal avec l’en-tête demandé par WordPress, active-le depuis Extensions, puis ajoute une fonctionnalité limitée. Un shortcode qui affiche la date de dernière mise à jour d’une fiche suffit pour comprendre le cycle d’activation.
Les plugins WordPress publics exigent ensuite un niveau de rigueur supérieur. Le dépôt WordPress.org impose des règles de sécurité, de licence et de maintenance. Publier une extension qui utilise des fonctions non sécurisées, ne vérifie pas les droits utilisateur ou charge du JavaScript inutile sur toutes les pages crée une dette technique dès le premier téléchargement.
Apprendre les objets qui structurent un projet WordPress
Un Custom Post Type, souvent abrégé CPT, crée un type de contenu distinct des articles et des pages. Un site d’agence peut avoir des réalisations. Un site immobilier peut avoir des biens. Une plateforme de formation peut avoir des cours. Le CPT donne une structure propre à ces contenus dans l’administration et dans les URL.
Une taxonomie sert à classer. Les catégories et étiquettes sont des taxonomies natives. Un annuaire peut utiliser une taxonomie « secteur », une taxonomie « ville » et une taxonomie « niveau de service ». Les champs personnalisés servent à enregistrer des informations précises comme un tarif, une surface, une durée ou une URL externe.
Advanced Custom Fields, connu sous le nom ACF, reste utile pour produire rapidement des champs dans l’administration. Les versions récentes compatibles avec WordPress 6.8 et PHP 8.2 ou 8.3 offrent une base stable, à condition de vérifier la compatibilité affichée dans l’onglet Extensions avant une mise à jour. ACF ne remplace pas la compréhension des métadonnées WordPress. Il fournit une interface pour les créer et les lire.
WP_Query sert à récupérer des contenus selon des critères précis. Un développeur doit savoir filtrer par type de contenu, taxonomie, auteur, date ou champ personnalisé. Une requête mal construite sur une base de milliers de fiches peut ralentir toute une page. Charger 1000 entrées pour n’en afficher que 12 n’est pas une stratégie acceptable.
Le JavaScript prend davantage de place avec l’éditeur de blocs Gutenberg. Il intervient pour créer des blocs, communiquer avec l’API REST et enrichir l’interface d’administration. React est la bibliothèque utilisée dans une grande partie de cet environnement. PHP reste la priorité pour le backend WordPress, mais ignorer JavaScript limite l’accès aux projets de blocs sur mesure.
La rétrocompatibilité de WordPress explique aussi certaines fonctions anciennes et certains comportements surprenants. Le CMS doit préserver des millions de sites. Un bon développeur n’essaie pas de réécrire WordPress à chaque projet. Il utilise les API prévues, suit les changements majeurs et teste avant le déploiement.
Construire un parcours de développeur WordPress avec des projets qui servent vraiment
Les formations donnent des bases. Les projets terminés construisent une compétence utilisable. Une série de vidéos sur PHP ne prouve pas qu’un futur freelance sait gérer une extension, une base de données, une sauvegarde et une mise en ligne sans perdre des données.
Le parcours le plus rentable part de projets courts, mais complets. Il faut installer, coder, tester, documenter et déployer. Ce cycle révèle les vrais problèmes. Une fonctionnalité marche souvent sur LocalWP, puis échoue sur un hébergement mutualisé parce que la version PHP n’est pas la même ou que les droits fichiers sont trop restrictifs.
Choisir un environnement de travail reproductible
LocalWP permet de lancer une installation WordPress locale sans toucher au site public. Docker convient ensuite à ceux qui veulent reproduire exactement une stack, avec une version de PHP, MySQL et un serveur web définis dans des fichiers. Pour débuter, LocalWP évite une configuration longue. Pour travailler à plusieurs ou gérer des environnements exigeants, Docker apporte une meilleure reproductibilité.
Git doit arriver tôt dans le parcours. Il ne sert pas uniquement à publier du code sur GitHub. Il permet de revenir à un état précédent après un essai raté, de comparer deux versions et de comprendre ce qui a changé. Un commit clair comme « ajout du filtre par ville sur l’annuaire » vaut mieux qu’un historique rempli de « test » et « correction finale 2 ».
PHPStorm reste une référence pour les projets PHP complexes, avec inspection de code, navigation dans les fonctions et intégration Git. Son abonnement individuel coûte généralement plusieurs dizaines d’euros par an, avec une facturation qui varie selon le pays et les promotions, TVA comprise ou non selon le compte. Visual Studio Code est gratuit et suffit pour apprendre, à condition d’installer PHP Intelephense, un débogueur et les extensions de formatage adaptées.
Suivre un ordre de projets qui augmente vraiment le niveau
- Créer un CPT et une taxonomie. Un répertoire de ressources permet de comprendre l’enregistrement des contenus et leur affichage dans l’administration.
- Ajouter des champs ACF et un template. Une fiche ressource avec durée, niveau et lien externe oblige à récupérer des métadonnées proprement.
- Développer une extension métier. Un plugin qui ajoute un filtre, une page de réglages et une validation de données apprend à isoler le code.
- Construire un bloc Gutenberg. Un bloc d’appel à l’action avec options éditables introduit JavaScript, attributs et rendu côté serveur.
Chaque projet doit avoir un dépôt Git, un fichier README et une démonstration accessible. Le README précise la version de WordPress utilisée, la version PHP, les extensions nécessaires et les étapes d’installation. Ce document sauve du temps lorsque le projet ressort six mois plus tard.
Les ressources officielles restent prioritaires pour les fonctions natives. Le Code Reference de WordPress, la documentation développeur et la documentation MDN répondent mieux aux questions durables que des snippets anonymes. Stack Overflow aide pour un message d’erreur précis, mais une réponse publiée en 2017 peut être incompatible avec PHP 8.3.
Les changements du secteur dépassent WordPress. Les métiers de produit et de technique se rapprochent sur les projets numériques. Comprendre le rôle d’un responsable produit innovation aide à voir pourquoi une fonctionnalité doit répondre à un usage avant d’être codée. Une belle architecture qui ne règle aucune friction utilisateur reste une mauvaise livraison.
Un portfolio crédible ne montre pas seulement des captures d’écran. Il explique une contrainte, le choix effectué et le résultat vérifiable. Une migration de thème réussie avec conservation des URL, des redirections et des données de formulaire démontre plus de maturité qu’une page d’accueil décorative.
Réussir WordPress en production avec vitesse, sécurité et tests
Un site de démonstration peut masquer tous les défauts. Peu d’articles, zéro trafic, une seule extension et aucun paiement ne mettent pas la stack sous tension. La production change le cadre. Les sauvegardes deviennent utiles, les mises à jour peuvent casser une dépendance et une requête lente se répète sur chaque visite.
L’optimisation WordPress commence par l’hébergement. Sur un site vitrine modéré, un hébergeur mutualisé sérieux avec PHP 8.2 ou 8.3, sauvegardes, certificats TLS et accès aux logs peut suffire. o2switch est souvent choisi en France pour ce profil. Le prix public évolue selon les offres et promotions, mais il faut contrôler le tarif renouvelé, la TVA et les limites de ressources avant de signer.
Mesurer avant d’installer un cache
WP Rocket peut aider à générer un cache de pages, différer certains scripts et optimiser le chargement des fichiers. Il ne corrige pas une image de 6 Mo, un serveur saturé ou un thème qui lance 80 requêtes inutiles. Les tarifs de licence varient selon le nombre de sites et la période, généralement facturés annuellement, avec TVA selon la zone de facturation. La version utilisée et la compatibilité doivent être vérifiées dans le compte client avant une mise à jour.
PageSpeed Insights, WebPageTest et Chrome DevTools servent à mesurer. Les Core Web Vitals regroupent notamment LCP, INP et CLS. Pour donner un ordre concret, Google vise un LCP sous 2,5 secondes, un INP sous 200 millisecondes et un CLS inférieur à 0,1 pour une expérience jugée bonne. Ces chiffres n’excusent pas une page qui charge huit scripts de chat, de tracking et de pop-up sans raison.
Le diagnostic doit suivre un ordre clair. Vérifie d’abord le temps de réponse serveur. Contrôle ensuite le poids des images, les scripts tiers, le nombre d’extensions actives et les erreurs dans la console. Désactiver cinq plugins au hasard sur une boutique ouverte reste risqué. Une copie de préproduction permet de tester sans interrompre les commandes.
Traiter la sécurité WordPress comme un travail récurrent
La sécurité WordPress ne se réduit pas à installer Wordfence ou une autre extension de protection. Un pare-feu aide, mais il ne compense pas un administrateur nommé « admin », un mot de passe recyclé ou un plugin abandonné depuis quatre ans.
Les comptes doivent respecter le moindre privilège. Un rédacteur n’a pas besoin d’installer des extensions. Un client qui gère des commandes WooCommerce n’a pas besoin d’accéder à l’éditeur de fichiers. L’authentification à deux facteurs doit être proposée aux comptes administrateurs, surtout lorsque plusieurs prestataires interviennent.
Les sauvegardes doivent vivre hors du serveur principal. Une sauvegarde stockée uniquement chez le même hébergeur ne protège pas d’un incident majeur ou d’un compte compromis. Teste la restauration sur un environnement local ou de préproduction. Une archive inutilisable ne protège rien.
La mise à jour suit un processus. Sauvegarde, test sur copie, mise à jour du cœur, des extensions et du thème, contrôle des pages critiques, puis surveillance des logs. WooCommerce demande une vigilance supplémentaire, car une incompatibilité peut toucher le panier, le paiement ou les e-mails transactionnels.
Le développement n’est plus isolé du reste du numérique. Les évolutions de plateforme, de navigateur et d’IA modifient les choix techniques. Cette vision d’un tournant historique du web rappelle qu’un projet solide ne dépend pas d’un effet de mode ou d’un plugin lancé hier.
Vendre et maintenir un travail de développeur WordPress sans créer de dette client
Un client ne paie pas pour une fonction PHP bien écrite. Il paie pour un problème résolu, une interface administrable et un site qui ne casse pas au prochain changement. Cette différence sépare le développeur qui facture une journée isolée de celui qui construit une relation durable.
WooCommerce est un bon choix lorsqu’une boutique doit garder la main sur ses données, gérer des règles spécifiques et évoluer avec des développements maison. Pour vendre trois produits numériques avec presque aucune personnalisation, une solution hébergée peut coûter moins de temps. Le bon outil dépend du catalogue, des flux de paiement, des règles de livraison et du niveau de personnalisation attendu.
Cadrer la demande avant de coder
Une phrase comme « il faut un espace membre » ne suffit pas. Il faut connaître les rôles, les contenus visibles selon l’abonnement, les paiements, les échéances, les e-mails, les exports, les contraintes RGPD et les cas d’échec. Une fonctionnalité imprécise produit des retours interminables, parce que chacun imagine un résultat différent.
Un devis sérieux décrit le périmètre, les exclusions, le nombre d’allers-retours, l’environnement technique, les licences et la maintenance. Il précise aussi ce qui dépend du client, comme la fourniture des textes, des visuels ou des accès à un prestataire de paiement. Les licences premium doivent être facturées avec leur période de renouvellement et leur statut HT ou TTC.
Un tarif journalier varie énormément selon l’expérience, la zone, la complexité et le niveau de responsabilité. Une intervention de correction sur un thème existant ne se facture pas comme un développement de plugin avec tests, documentation et support. Le prix doit refléter le risque pris. Une intégration qui touche aux commandes WooCommerce ou aux données personnelles demande plus de vérifications qu’un bloc éditorial.
Préparer une livraison que quelqu’un d’autre peut reprendre
La documentation fait partie de la livraison. Elle indique où modifier les contenus, comment créer une nouvelle fiche, quelles extensions sont sous licence et comment restaurer une sauvegarde. Un client ne doit pas dépendre d’un développeur pour changer un texte de bouton ou ajouter une actualité.
Le code doit respecter les conventions WordPress, utiliser des préfixes pour éviter les collisions de fonctions et vérifier les permissions avec les capacités utilisateur. Les données entrantes doivent être nettoyées, les sorties échappées, et les formulaires protégés par des nonces. Un nonce réduit le risque qu’une action soit déclenchée depuis une requête forgée, mais il ne remplace pas un contrôle de droits.
Une maintenance mensuelle peut inclure les mises à jour, le contrôle des sauvegardes, la surveillance des erreurs, un rapport de sécurité et un petit volume de corrections. Le contenu de ce forfait doit être écrit. « Maintenance WordPress » ne veut rien dire si personne ne sait si les évolutions fonctionnelles, les licences ou l’intervention d’urgence y sont incluses.
Un développeur WordPress fiable ne promet pas qu’un site ne rencontrera jamais de bug. Il met en place un cadre pour détecter le bug, revenir en arrière et corriger sans transformer chaque incident en crise.
Faut-il apprendre PHP avant de développer des thèmes WordPress ?
Oui. HTML et CSS permettent de modifier le rendu, mais PHP permet de comprendre la hiérarchie des templates, les boucles WordPress, les hooks et les données affichées. Commence par les bases de PHP avant de créer un thème sur mesure.
ACF suffit-il pour devenir développeur WordPress ?
Non. ACF accélère la création de champs personnalisés, mais il ne remplace pas la maîtrise des Custom Post Types, des taxonomies, de WP_Query, des permissions utilisateur et de la sécurité des données.
Quel environnement utiliser pour apprendre la programmation WordPress ?
LocalWP convient pour démarrer rapidement sur un ordinateur. Utilise ensuite Git dès les premiers projets. Docker devient utile quand il faut reproduire le même environnement entre plusieurs machines ou membres d’une équipe.
Peut-on modifier functions.php pour ajouter une fonctionnalité ?
Oui pour un test lié uniquement à l’apparence du thème actif. Une fonctionnalité métier doit aller dans une extension dédiée ou un mu-plugin, afin de rester active si le thème change.