Avec plus de 50 000 extensions gratuites, le répertoire d’extensions WordPress est un centre commercial pour chaque utilisateur de WordPress, et vous y trouverez des extensions couvrant toutes les fonctions et fonctionnalités pour votre prochain site. Néanmoins, il y a de fortes chances que vous ne trouviez pas d’extension fournissant exactement la fonctionnalité expressément demandée par votre client. Que cela vous plaise ou non, vous devrez peut-être lancer votre éditeur de texte préféré et commencer à coder. Mais avez-vous déjà envisagé la possibilité de partager vos extensions avec l’ensemble de la communauté WordPress ?

Le but principal de cet article est d’explorer avec vous les avantages de la distribution d’extensions via le dépôt WordPress.org. Je résumerai rapidement les recommandations et les meilleures pratiques que nous vous encourageons à suivre, puis je vous expliquerai les concepts clés du SVN que vous devriez connaître lorsque vous prévoyez de publier une extension dans le répertoire d’extensions WordPress.

Pourquoi le répertoire d’extensions WordPress ?

La première raison de publier votre extension dans le répertoire d’extensions WordPress est de profiter gratuitement d’un certain nombre d’outils et de services exceptionnels, tels que la description de l’extension, les statistiques, les installations actives, le journal des changements, le forum de support, etc. De plus, les utilisateurs sont informés chaque fois qu’une nouvelle version est disponible et peuvent lancer la mise à jour directement à partir de l’écran WordPress des extensions. Les extensions WordPress.org ont une plus grande visibilité dans les moteurs de recherche, et vous pouvez exploiter un média puissant pour promouvoir votre identité et améliorer votre réputation en tant que développeur.

Si vous n’êtes pas un grand spécialiste du marketing ou si vous n’avez pas le temps de faire du marketing, le répertoire des extensions WordPress peut être un excellent moyen d’obtenir du trafic gratuit et des vues sur votre extension.

Le répertoire des extensions WordPress
Le répertoire des extensions WordPress

Une autre bonne raison de publier une extension est de contribuer à la communauté WordPress. WordPress est un logiciel libre, avec une énorme communauté fournissant gratuitement des tonnes de thèmes et d’extensions. Publier une extension WordPress est la meilleure façon de remercier tous ces gens géniaux qui donnent leur travail gratuitement.

Ce qui devrait vous intéresser

Gardez à l’esprit qu’une plus grande visibilité pourrait ruiner votre réputation si vos extensions sont mal codées, si vous ne les mettez pas à jour régulièrement, ou si vous ne fournissez pas un support rapide et efficace (si vous n’êtes pas un développeur de confiance). Voici quelques concepts clés à épingler.

Codage

Il y a beaucoup à dire sur le codage, et vous trouverez beaucoup de lectures utiles. Mais si vous êtes un développeur WordPress, le Codex est votre Bible, et vous devriez lire la section Plugin Guidelines avant de commencer à coder. Voici ma liste personnelle de concepts clés :

  • Gardez votre code lisible par l’homme. Cela permet aux autres développeurs de comprendre ce que fait votre extension, de vous aider éventuellement à trouver des bugs, et de développer leurs propres extensions sur votre code. Afin de stimuler la collaboration entre les développeurs, le Codex WordPress fournit les WordPress Coding Standards, qui est une somme des meilleures pratiques pour tout développeur WordPress.
  • Toujours commenter votre code. La documentation en ligne est une excellente ressource que vous ne devriez jamais sous-estimer. Elle permet à chacun de comprendre rapidement ce qu’une fonction fait, quels arguments sont acceptés, ce que retourne une variable, etc. Dans les commentaires, vous pouvez ajouter des liens, des versions de script, et d’autres descriptions qui peuvent être utiles chaque fois que votre script va être modifié par vous ou quelqu’un d’autre.
     Et j’aime à dire que les gens de WordPress sont une communauté d’apprentissage, et que respecter les normes de documentation en ligne sont un excellent moyen de permettre aux gens d’apprendre ce que vous savez déjà.
  • Préférez les fonctions WordPress aux fonctions PHP lorsque c’est possible. Les fonctions de WordPress vous permettent de construire un code sécurisé et efficace. Surtout lorsque vous avez besoin d’obtenir des données de la base de données, Les fonctions de l’API vous évitent de construire des requêtes complexes, qui pourraient très probablement être moins sécurisées que les requêtes WordPress intégrées. Il y a beaucoup d’excellents développeurs derrière le noyau, et ils font un travail fantastique dont nous pouvons tirer parti.

Fonctionnalités

Même si vous n’êtes pas payé pour votre travail, vous devriez considérer vos extensions comme des produits à vendre. Vous n’êtes pas obligé d’être un spécialiste du marketing : vous devez simplement savoir que votre extension doit être unique et/ou se distinguer des extensions similaires. Donnez à votre extension un nom mémorisable et significatif, et des fonctionnalités uniques qui feront dire aux gens « J’en ai besoin ». Et, si votre extension offre des fonctionnalités qui sont déjà couvertes par d’autres extensions, mettez l’accent sur l’accessibilité et la facilité d’utilisation pour donner aux utilisateurs une valeur ajoutée qui distingue clairement votre produit de ses concurrents.

Support

Chaque extension distribuée par l’intermédiaire du répertoire des extensions possède un forum spécifique où les utilisateurs vous contacteront pour obtenir de l’aide. Fournissez des réponses claires aux questions des utilisateurs et aidez-les à résoudre leurs problèmes. Des réponses rapides et appropriées seront cruciales pour bâtir votre réputation de développeur de confiance. Prenez en compte n’importe quel sujet, et saisissez n’importe quelle information qui pourrait vous aider à améliorer votre extension.

Mises à jour

Mettez régulièrement à jour votre extension, en poussant de petits changements si nécessaire, mais ne soyez pas excessif. Trop de mises à jour peuvent décevoir vos utilisateurs.

Licences

WordPress est réalisé sous GNU General Public Licence V2 et la plupart des extensions sont publiées sous la même licence GPL. En fait, il n’est pas strictement nécessaire de publier l’extension sous la même licence, car toute licence compatible est admise. Quoi qu’il en soit, la GPLv2 est recommandée (en savoir plus sur licence GPL).

Afin de fournir un exemple de travail pour cet article, l’extension que nous avons disséqué dans 4 hacks pratiques pour la médiathèque WordPress a été publiée dans le répertoire. Téléchargez EXIF Viewer et ouvrez ses fichiers dans votre éditeur de texte, puis revenez à cet article et plongez dans la structure de l’extension.

La structure de l’extension

Votre extension sera stockée dans le dépôt SVN de WordPress.org. N’importe qui pourra en consulter une copie, mais seul l’auteur aura le droit d’y accéder. Une fois que vous avez publié une extension, vous pouvez ajouter de nouveaux fichiers, modifier ou supprimer des fichiers existants sur votre machine locale, puis téléverser ces modifications sur le serveur. Toutes les modifications sont suivies par la subversion, de sorte que vous pourrez revenir aux anciennes versions ou révisions plus tard.

Les dépôts SVN fournissent quatre dossiers par défaut :

/assets/
/branches/
/tags/
/trunk/
  • Les captures d’écran, les en-têtes et les icônes vont dans assets
  • trunk est le répertoire dans lequel vous placerez les fichiers de l’extension
  • Les branches divergentes du code vont dans branches
  • Les versions de l’extension seront stockées dans tags

Chaque extension doit contenir au moins deux fichiers : le fichier readme.txt et le script PHP principal. En option, vous pouvez ajouter un certain nombre d’images (assets) à afficher sur la page de l’extension.

Ressources de l’extension

Les ressources sont des en-têtes de l’extension, des icônes et des captures d’écran. Les en-têtes de l’extension sont les images JPG ou PNG que vous pouvez voir en haut d’une page d’extension. Les noms de fichiers dépendent de la largeur et de la hauteur de l’image. Actuellement, les noms/dimensions suivants sont autorisés :

  • Normal : banner772×250.(jpg|png)
  • Rétina : banner-1544×500.(jpg|png)

Les icônes sont des images carrées avec les noms/dimensions suivants :

  • icon-128×128.(jpg|png)
  • icon-256×256.(jpg|png)
  • icon.svg

Vous ne devez pas spécifier les dimensions SVG dans le nom du fichier, car ces images peuvent être mises à l’échelle dans n’importe quelle taille. Si vous utilisez les SVGs, vous devez fournir une icône PNG en tant qu’alternative.

Les captures d’écran sont des images affichées dans le contenu de la page de l’extension. Les formats PNG et JPEG sont autorisés, le nom du fichier doit être en minuscules et respecter la structure suivante :

  • screenshot-1.(jpg|png)
  • screenshot-2.(jpg|png)

Pour chaque capture d’écran, vous devez fournir une description dans le fichier readme. Tous ces graphiques doivent être ajoutés dans le dossier assets du répertoire local de votre extension (plus d’informations sur How Your Plugin Assets Work).

Des ressources attrayantes et cohérentes font une excellente page d’extension
Des ressources attrayantes et cohérentes font une excellente page d’extension

Le fichier Readme.txt

Vous devez fournir à votre extension un fichier readme.txt et les en-têtes appropriés dans le script principal.

Tout d’abord, vous avez besoin d’un fichier readme.txt contenant les informations suivantes :

  • Nom de l’extension
  • Collaborateurs : (une liste d’IDs utilisateurs de wordpress.org)
  • Lien pour faire un don : http://example.com/
  • Étiquettes : (étiquettes de l’extension)
  • Nécessite au moins : (Version de WordPress)
  • Testé jusqu’à : (Version de WordPress)
  • Étiquette stable : (version de l’extension)
  • Licence : GPLv2 ou ultérieure (ou compatible)
  • URL de licence : https://www.gnu.org/licenses/gpl-2.0.html
  • Description
  • Installation
  • Captures d’écran
  • Journal des changements

La section des captures d’écran vous permet d’ajouter une description pour toute image que vous souhaitez inclure dans la page de l’extension. WordPress.org fournit le modèle standard du fichier readme du plugin, qui vous aidera à construire votre fichier readme. De plus, vous pouvez utiliser Readme Validator pour vérifier si votre fichier est correct.

Readme Validator
Readme Validator affiche des notes et des avertissements sur les fichiers readme.

Le commentaire d’en-tête de l’extension

Le commentaire d’en-tête indique à WordPress qu’un fichier est une extension.

Si vous n’allez pas publier votre extension, le seul champ nécessaire est le nom de l’extension. Inversement, si vous prévoyez de publier l’extension, plus vous ajoutez d’informations, mieux c’est. Voici une liste des champs disponibles :

  • Plugin Name : (obligatoire) le nom de votre extension doit être unique. Avant de publier, recherchez dans le répertoire des extensions les extensions portant le même nom.
  • Plugin URI : la page d’accueil de l’extension
  • Description : la description d’une extension en une ligne (moins de 140 caractères)
  • Version : la version actuelle de l’extension (doit être supérieure à la version précédente)
  • Author : un ou plusieurs noms d’auteurs, séparés par des virgules
  • Author URI : la page d’accueil de l’auteur
  • Licence  : le slug de la licence de l’extension (Ex : GPL2)
  • Licence URI : le lien vers le texte intégral de la licence (Ex : https://www.gnu.org/licenses/gpl-2.0.html)
  • Text Domain : le text domaine de l’extension
  • Domain Path : où trouver les fichiers de traduction (voir How to Internationalize Your Plugin)

Voici le commentaire d’en-tête d’une des extensions WordPress les plus populaires :

<?php
/**
 * @package Akismet
 */
/*
Plugin Name: Akismet Anti-Spam
Plugin URI: https://akismet.com/
Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from spam</strong>. It keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key.
Version: 3.3.2
Author: Automattic
Author URI: https://automattic.com/wordpress-plugins/
License: GPLv2 or later
Text Domain: akismet
*/

Publication dans le répertoire d’extensions WordPress

Quand vous serez prêt, inscrivez-vous et soumettez votre extension.

Add your plugin
La première version de l’extension doit être téléversée pour une évaluation manuelle

L’extension sera revu manuellement par le personnel de WordPress.org. Ce processus peut prendre entre un et dix jours. Si des problèmes sont détectés, vous recevrez un e-mail vous expliquant ce qui ne va pas et ce que vous devriez faire pour corriger les erreurs.

Le processus de révision peut prendre jusqu'à dix jours.
Le processus de révision peut prendre jusqu’à dix jours.

Une fois l’extension approuvée, vous recevrez un e-mail vous informant que vous avez accès au dépôt SVN.

Un e-mail vous informera que l’extension a été approuvée.
Un e-mail vous informera que l’extension a été approuvée.

Pour le moment, l’extension n’est pas disponible au téléchargement, mais vous pouvez téléverser, modifier et supprimer des fichiers via la ligne de commande (ou tout autre client SVN). L’image ci-dessous montre la page actuelle de l’extension.

La page de l’extension est active, mais l’extension n'est pas disponible au téléchargement.
La page de l’extension est active, mais l’extension n’est pas disponible au téléchargement.

Téléverser l’extension

Notre première tâche est de téléverser les fichiers de l’extension dans le dépôt SVN, mais nous avons d’abord besoin d’un dossier local où nous allons stocker les fichiers de l’extension :

$ mkdir localdir

Maintenant, nous pouvons vérifier le dépôt de pré-construction :

$ svn co https://plugins.svn.wordpress.org/plugin-name path/to/localdir

Nous obtiendrons la réponse suivante :

> A    plugin-name/branches
> A    plugin-name/tags
> A    plugin-name/trunk
> Checked out revision 99999999.

A signifie que les dossiers ont été ajoutés du dépôt central au répertoire local.

L’étape suivante consiste à ajouter des fichiers dans le dossier local /trunk et à les téléverser dans le dépôt :

localdir/$ svn add trunk/*

Vous devrez vous authentifier. Une fois connecté, vous obtiendrez la réponse suivante :

> A    trunk/my-plugin.php
> A    trunk/readme.txt

Note : ne placez pas le fichier principal de l’extension dans un sous-dossier du trunk, car cela briserait les téléchargements.

Vérifiez maintenant les modifications dans le dépôt :

localdir/$ svn ci -m 'First plugin version'

Et voici la réponse finale :

> Adding trunk/my-plugin.php
> Adding trunk/readme.txt
> Transmitting file data .
> Committed revision 9999999.
EXIF Viewer fichier
La structure de fichier de la copie locale d’EXIF Viewer

Ensuite, nous devons ajouter les assets de l’extension :

localdir/$ svn add assets/*

Ensuite, vérifiez à nouveau les changements :

localdir/$ svn ci -m 'Assets upload'

Et c’est tout ! Allez sur la page de votre extension, et commencez à promouvoir votre travail !

EXIF Viewer plugin page
The final page of the EXIF Viewer plugin

Publier une nouvelle version

Avant de publier la prochaine version, vous devez mettre à jour le champ Stable Tag dans le fichier trunk/readme.txt et le numéro de version dans le commentaire d’en-tête de l’extension. Lorsque la nouvelle version est prête à être publiée, copiez vos fichiers dans un sous-dossier de /tags et définissez le nom du sous-dossier avec le numéro de version (Ex : 1.0.1) :

localdir/$ svn cp trunk tags/1.0.1
> A tags/1.0.1

Ensuite, vérifiez les changements :

localdir/$ svn ci -m "tagging version 1.0.1"
> Adding         tags/1.0.1
> Adding         tags/1.0.1/my-plugin.php
> Adding         tags/1.0.1/readme.txt
> Committed revision 999999.

Et c’est tout ! La nouvelle version est en ligne.

Modifier un fichier

Il se peut que vous deviez parfois apporter des modifications mineures qui ne nécessitent pas une nouvelle version. Tout d’abord, mettez à jour la copie locale du dépôt :

localdir/$ svn up
> At revision 999999.

Ensuite, modifiez les fichiers et vérifiez s’il y a des changements :

localdir$ svn stat
> M       trunk/readme.txt

M signifie que ces fichiers ont été modifiés.
Ci-dessous, vous pouvez voir ce qui a changé entre les deux versions :

localdir$ svn diff

Enfin, vérifiez les changements du dépôt central :

localdir$ svn ci -m "minor changes"
> Sending trunk/readme.txt
> Transmitting file data .
> Committed revision 999999.

Résumé

Que vous décidiez de publier une version allégée d’une extension commerciale, ou que vous publiiez l’extension pour contribuer à la communauté, l’annuaire WordPress.org est le meilleur endroit pour distribuer votre travail. Il vous donne une large visibilité et fournit un certain nombre d’outils professionnels pour distribuer et promouvoir vos extensions.

Alors, avez-vous déjà pensé à cette opportunité ? Partagez votre expérience avec nous ci-dessous.

Carlo Daniele Kinsta

Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.