Publiez votre plugin WordPress sur le site de la communauté WP

wordpress-plugins

Cet article porte sur la publication d'un plugin custom sur le site de la communauté WordPress (http://wordpress.org)

Pourquoi publier un plugin ?

  • Cela pourra servir à d’autres.
  • Pour apporter sa pierre à l’édifice WordPress
  • L'avantage d'avoir la communauté et des contributeurs

Comment développer votre plugin ?

Dans un premier temps, avant de développer votre plugin et de le publier sur le site de la communauté, assurez-vous que votre plugin a une utilité précise sinon celui-ci ne sera pas publié.

Ensuite votre plugin, doit :

  • Respecter les bonnes pratiques sur le développement des plugins WP :

  • Le nom du fichier php principal de votre plugin doit être le même que le nom du dossier du plugin :

  /plugins/my-plugin-custom/my-plugin-custom.php

  • Remplissez les informations de votre plugin dans le fichier principal :
/**
 * Plugin Name: My plugin name
 * Plugin URI: http://mypluginurl.com
 * Text Domain: myplugindomain
 * Description: Sapiente inceptos possimus hendrerit velit fringilla
 * Author: Johary Ranarimanana
 * Author URI: 
 * Version: 1.0.0
 * License: GPLv2 or later
 * Domain Path: /languages/
 */
  • Préfixez toutes vos fonctions,  variables globales, classes, clés ( handle, hook, options bdd, etc ... ), utilisez un unique préfixe qui vous distinguera.
  • Organisez vos fichiers en créant des sous-dossiers dépendant aussi de l'envergure de votre plugin ( js, css, images, lib, inc, admin, classes, etc ... )

plugin_wp_architecture

Lien : https://developer.wordpress.org/plugins/the-basics/best-practices/

  • Respecter les bonnes pratiques

  • Utiliser les API WordPress et hook WP (ne pas réinventer la roue, utiliser au maximum l'existant)

http://adambrown.info/p/wp_hooks

https://codex.wordpress.org/Function_Reference

  • Sécuriser votre plugin :

  La sécurité avant tout : si votre plugin présente des failles de sécurité, il ne sera pas publié.

  1.   Utiliser les nonces pour valider l'identité utilisateur et empêcher les utilisateurs mal-intentionnés
  2.   Échapper et préparer les requêtes SQL
  3.   Valider les input utilisateurs
  4.   Utiliser les droits et permissions
  5.   etc ...

    Liens :

http://www.smashingmagazine.com/2012/07/19/guide-wordpress-coding-standards
http://www.smashingmagazine.com/2011/09/21/interacting-with-the-wordpress-database/

  • Optimisez votre plugin :

  Le temps de chargement de votre plugin est aussi à optimiser, car on ne validera pas un plugin qui ralentit gravement le site

Vous pouvez utiliser Plugin Performance Profiler pour voir le temps de chargement de votre plugin.

Utilisez l'object cache, les transients, créez des tables custom si les tables  WP ne sont pas adaptées, etc ...

Mettre des commentaires et documenter votre plugin

  • Respecter les standard du coding WordPress

  Il est impératif de bien coder votre plugin en respectant les standards WordPress (indentation, espacement, imbrication, majuscule et minuscule, utilisation des quotes, convention sur les noms, parenthèses, etc ... ).

Liens :

  https://make.wordpress.org/core/handbook/coding-standards/php/
https://make.wordpress.org/core/handbook/coding-standards/javascript/
https://make.wordpress.org/core/handbook/coding-standards/css/
https://make.wordpress.org/core/handbook/coding-standards/html/

  • Etre souple

  •  Mettez vos propres hook afin de permettre le sur-chargement de certaines fonctionnalités par d'autres plugins ou add-on
  •  Utilisez des classes afin d'être étendu par d'autre plugins
  •  Ne faite pas de code en dur (ID ou slug de contenu, constante, configuration en dur)
  •  Utilisez les options et créez des pages d'administration/ configuration
  •   etc ...
  • Etre multilingue (optionnel mais conseillé)

Définissez un texte de domaine unique

plugin_wp_textdomain

Pour les plugins, les fichiers .mo seront automatiquement détectés dans le répertoire de langues que vous avez déclaré.

Utilisez les fonctions de traduction pour les chaines statiques dans le plugin

plugin_wp_function_localisation

Faites la traduction avec poedit

  • Créez un nouveau catalogue et remplissez les informations de votre plugin

plugin_wp_poedit1plugin_wp_poedit2

  • Enregistrez votre catalogue dans le dossier de langue de votre plugin et mettez les chemins de base en mode relatif par rapport au fichier catalogue

plugin_wp_poedit3

  • Ajoutez et configurez dans le troisième onglet les fonctions de traduction :

__(), _n(), _x(), _e(), _c(), esc_attr__(), esc_attr_e(), _ngettext(), _n_noop(),

Pour les fonctions différenciant le singulier et pluriel, mettez  le nombre de formes qui dépendra du nombre de paramètres de la fonction

Exemple : _n($singular_form, $plural_form, $number)  => _n:1,2

Dupliquez votre catalogue dans la langue à traduire en respectant le nommage {textdomaine}-{codelangue} .po:

Exemple : myplugindomain-fr_FR.po, myplugindomain-es_ES.po, etc ...

  • Cliquez sur plugin_wp_poedit_maj  pour scanner votre plugin et trouvez les chaines à traduire.
  • Dans les préférences,  cochez compiler automatiquement les fichiers .mo afin de créer automatiquement le fichier .mo lors de l'enregistrement.

plugin_wp_poedit_complie_mo

  • Traduisez et Enregistrez !
  • Avoir un fichier reame.txt valide (incontournable)

Votre plugin doit avoir un readme.txt valide pour être affiché sur le site de la communauté :

Comment procéder pour publier votre plugin ?

  En résumé :

  1. Vous devez utiliser la licence GPL, libre de droit
  2. Vous devez utiliser SVN
  3. Pas de code payant ou phoning home obligeant l'utilisateur du plugin à vous contacter afin d'obtenir des codes
  4. Pas de code illégal
  5. Pas de publicité ou d'offre de service tierce
  6. Ne pas taguer le plugin avec le nom d'un autre plugin
  7. Ne pas utiliser le trademark WP
  8. etc ...

plugin_wp_add_plugin

  • Remplissez les champs obligatoires : Nom du plugin, descriptif, et un lien vers un fichier zip contenant votre plugin
  • Votre plugin sera mis dans la liste d'attente et lorsque le team WordPress aura approuvé votre plugin, un mail vous sera fourni avec un dépôt SVN pour un premier commit
  • L'URL de votre dépôt ressemblera à :
https://plugins.svn.wordpress.org/your-plugin-name
  • Créez un dossier en local et faites un checkout de l'url :
$ svn co https://plugins.svn.wordpress.org/your-plugin-name my-local-dir
> A	my-local-dir/trunk
> A	my-local-dir/branches
> A	my-local-dir/tags
> Checked out revision 11325.
  • Ajoutez vos fichiers dans le dossier trunk et vos screenshots dans assets :
my-local-dir/$ svn add trunk/*
> A	trunk/my-plugin.php
> A	trunk/readme.txt

# Now check in the changes back to the central repository.
# Give a message to the check in.

my-local-dir/$ svn ci -m 'Adding first version of my plugin'
> Adding	trunk/my-plugin.php
> Adding	trunk/readme.txt
> Transmitting file data .
> Committed revision 11326.

# All done!

Lien : https://wordpress.org/plugins/about/svn/

Conclusion :

En conclusion, je vous invite donc à créer votre plugin sur le site de la communauté WP afin de renforcer la communauté de nouvelles idées.

Lorsque vous créez un plugin pour un projet spécifique, toujours rendre général le code afin qu'il puisse être utilisé dans d'autres projets et donc pouvoir le publier sur le site de la communauté WordPress.

Bon codage !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.