Tu veux ajouter une fonctionnalité à ton site WordPress sans toucher au code du thème ? Bonne nouvelle : créer un plugin WordPress, c’est plus simple que tu ne le penses ! Pas besoin d’être un développeur chevronné, juste de suivre ce tuto pas à pas.

Dans cet article, je vais te montrer comment créer un plugin WordPress en partant de zéro, avec un exemple concret que tu pourras personnaliser selon tes besoins. L’objectif ? Que tu sois capable d’ajouter tes propres fonctionnalités sans jamais toucher au cœur de WordPress.

1. Pourquoi créer un plugin WordPress ?

Si tu as déjà ajouté des bouts de code dans le fichier functions.php de ton thème, tu as peut-être remarqué un problème : à chaque mise à jour du thème, tout disparaît ! C’est là qu’intervient le plugin : il permet d’ajouter des fonctionnalités sans toucher au thème et donc sans risque de perte.

Les avantages de créer un plugin :

  • Modularité : tu peux activer ou désactiver tes fonctionnalités en un clic.
  • Portabilité : ton plugin peut être utilisé sur plusieurs sites.
  • Sécurité : tu évites les modifications directes du cœur de WordPress.
  • Performance : un plugin bien codé est plus optimisé qu’un fouillis de snippets dans ton thème.

Tu veux garder un site propre et performant ? Pense à ne pas surcharger ton site avec trop de plugins inutiles ! Opte pour des solutions légères et bien codées. 😉

2. Pré-requis avant de commencer

Avant de te lancer dans la création de ton premier plugin, voici ce dont tu as besoin :

📌 Matériel et logiciels indispensables

  • Un site WordPress installé (en local avec LocalWP, MAMP, ou en ligne).
  • Un éditeur de code (VS Code, Sublime Text, ou même Notepad++).
  • Un client FTP (FileZilla) si tu travailles directement sur un serveur distant.

🛠 Quelques bases techniques utiles

  • PHP : WordPress fonctionne principalement avec ce langage.
  • Hooks (actions & filtres) : Les points d’accroche de WordPress pour ajouter ou modifier des fonctionnalités.
  • Structure de fichiers : Comprendre où placer ton plugin et comment organiser ses fichiers.

🔒 Ne pas oublier la sauvegarde !

Modifier WordPress implique toujours un risque. Avant de bidouiller quoi que ce soit, fais une sauvegarde complète de ton site. 👉 Je t’explique comment faire ici : Sauvegarder son site WordPress 😉

Si tu débutes, commence toujours tes tests sur un environnement local avant de toucher à ton site en production. Tu éviteras bien des sueurs froides ! 😅

3. Structure d’un plugin WordPress

Un plugin WordPress suit une structure bien définie. Voici comment il s’organise :

📂 L’arborescence minimale d’un plugin

Un plugin WordPress se compose au minimum d’un dossier contenant un fichier principal :

/wp-content/plugins/
├── mon-plugin-personnalise/
├── mon-plugin-personnalise.php

Le nom du dossier et du fichier doivent être explicites pour éviter toute confusion avec d’autres plugins.

📝 Le fichier principal du plugin

C’est dans ce fichier que WordPress reconnaît ton plugin. Il doit contenir un en-tête spécifique :

<?php
/**
* Plugin Name: Mon Plugin Personnalisé
* Plugin URI: https://ton-site.com/
* Description: Un plugin personnalisé pour ajouter des fonctionnalités sur mesure.
* Version: 1.0
* Author: Ton Nom
* Author URI: https://ton-site.com/
* License: GPL2
*/
?>

Ce bloc de commentaire permet à WordPress d’afficher ton plugin dans l’interface d’administration.

📦 Ajouter des fichiers CSS et JS

Si ton plugin a besoin de styles ou de scripts, tu peux organiser tes fichiers comme ceci :

/wp-content/plugins/
├── mon-plugin-personnalise/
├── mon-plugin-personnalise.php
├── assets/
├── style.css
├── script.js

Ensuite, tu les charges dans WordPress :

function charger_scripts_plugin() {
wp_enqueue_style('mon-plugin-style', plugin_dir_url(__FILE__) . 'assets/style.css');
wp_enqueue_script('mon-plugin-script', plugin_dir_url(__FILE__) . 'assets/script.js', array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'charger_scripts_plugin')

Toujours préfixer tes fonctions et fichiers avec un nom unique pour éviter les conflits avec d’autres plugins ! Exemple : mp_ pour « Mon Plugin ».

4. Création d’un plugin simple : pas à pas

Maintenant que tout est en place, passons à la création d’un plugin simple qui ajoute un message personnalisé en haut de chaque article.

📝 1. Ajouter une fonction pour afficher le message

Dans le fichier mon-plugin-personnalise.php, ajoute ce code :

function mp_afficher_message($content) {
if (is_single()) {
$message = '<div class="mp-message">Merci de lire cet article ! 🎉</div>';
return $message . $content;
}
return $content;
}
add_filter('the_content', 'mp_afficher_message');

🎨 2. Styliser le message

Dans assets/style.css, ajoute :

.mp-message {
background-color: #ffeb3b;
padding: 10px;
font-size: 18px;
text-align: center;
margin-bottom: 20px;
}

Pour aller plus loin, tu peux ajouter une option dans l’admin pour personnaliser ce message ! 😉

5. Aller plus loin : améliorer et sécuriser son plugin

Ajouter des options dans l’admin

Si tu veux permettre à l’utilisateur de configurer ton plugin, il faut ajouter une page d’options dans l’administration de WordPress. Voici un exemple pour créer une page de réglages :

function mp_ajouter_menu() {
    add_menu_page(
        'Paramètres de Mon Plugin',
        'Mon Plugin',
        'manage_options',
        'mon-plugin-settings',
        'mp_page_options',
        'dashicons-admin-generic',
        90
    );
}
add_action('admin_menu', 'mp_ajouter_menu');

function mp_page_options() {
    echo '<div class="wrap"><h1>Paramètres de Mon Plugin</h1><p>Personnalise ici les options de ton plugin.</p></div>';
}

Sécuriser son plugin

Pour éviter les failles de sécurité, voici quelques bonnes pratiques :

  • Échapper toutes les sorties : utilise esc_html(), esc_attr() ou esc_url().
  • Valider les entrées : utilise sanitize_text_field(), intval(), etc.
  • Vérifier les permissions : assure-toi que seuls les administrateurs peuvent modifier les réglages.
  • Ne jamais utiliser eval() : c’est une porte ouverte aux attaques.

Optimiser les performances

Un plugin mal codé peut ralentir ton site. Voici comment éviter ça :

  • Charger les scripts uniquement où c’est nécessaire wp_enqueue_script() et wp_enqueue_style()
  • Éviter les requêtes SQL inutiles.
  • Ne pas abuser des hooks d’administration.

👉 Besoin d’optimiser ton site WordPress ? Lis mon guide : 10 Plugins Essentiels pour Optimiser la Vitesse de Votre Site WordPress 🚀

Teste toujours ton plugin sur un environnement de staging avant de le mettre en ligne !

6. Conclusion

Et voilà ! 🎉 Tu viens de créer ton premier plugin WordPress ! En partant de zéro, tu as appris à structurer un plugin, ajouter une fonctionnalité simple, l’activer et l’améliorer en ajoutant des options et en optimisant ses performances.

FAQ – Créer un plugin WordPress

Est-ce que je peux créer un plugin sans coder ? +
Il existe des générateurs de plugins ou des plugins comme WPCode qui permettent d’ajouter du code sans toucher au fichier functions.php, mais pour créer un vrai plugin personnalisé, un minimum de code est nécessaire.
Quelle est la différence entre un plugin et le fichier functions.php ? +
Le fichier functions.php est lié à ton thème. Si tu changes ou mets à jour ton thème, tu perds tout. Un plugin, lui, reste indépendant et fonctionne quel que soit le thème utilisé.
Comment tester mon plugin en toute sécurité ? +
Le mieux est d’utiliser un environnement local (comme LocalWP) ou un site de staging. N’active jamais un plugin non testé sur ton site en production.
Mon plugin ralentit mon site, que faire ? +
Vérifie que tu ne charges pas de scripts ou styles inutilement, que tes fonctions sont bien conditionnées, et évite les requêtes SQL trop lourdes. Tu peux lire cet article pour optimiser ton site.
Où trouver l’inspiration pour créer des plugins utiles ? +
Observe les besoins récurrents de ton site ou de tes clients. Un bon plugin résout un problème spécifique. Tu peux aussi t’inspirer de plugins existants sur le répertoire officiel de WordPress.
Stanislas Weyant

Growth hacker depuis plus de 5 ans, j’accompagne les startups et les petites entreprises dans l’accélération de leur acquisition grâce au SEO et à des campagnes publicitaires ciblées et optimisées.