Un squelette de plugin pour WordPress

Comme j’ai pas mal bossé sur des plugins WordPress récemment, je me suis fait un « squelette » de plugin.
Celui-ci contient les bases nécessaire pour attaquer rapidement un plugin pour WordPress.
Aujourd’hui, je le partage avec vous (et la Terre entière :p ).

Photo par dartemis


Fonctionnalités

Comme il ne s’agit que d’un squelette, j’y ai seulement mis les opérations « courantes » d’un plugin WordPress :

  • Page d’admin (avec un lien dans le menu « Réglages »)
  • Utilisation du hook de désactivation du plugin (pour stopper ces crons, etc …)
  • Des méthodes utiles (get_option, update_option, get_plugin_url …)
  • L’extension est prête pour l’internationalisation (reste à faire vos fichiers de locale …)

Open source baby

Oui, comme d’habitude c’est open bar source.
Encore une fois, c’est hébergé chez GitHub, ici : https://github.com/chibani/wp_default_plugin

Voilà, ce squelette de plugin est à vous, ça fait plaisir ;)

N’hésitez pas à le cloner, le forker, remonter des bugs (dans github ou ici même), ça me fera plaisir de le voir vivre :)

Et vous ?

Je sais que je ne suis pas le seul à me faire ce genre d’outils (suivez mon regard)…

Alors. Quels sont vos outils, bouts de code ? Qu’avez-vous dans votre trousse à outils ?

Aller plus loin avec WordPress


Vous découvrez WordPress, vous écrivez vos premiers plugins ?
N’hésitez pas à jeter un oeil à « WordPress, 3ème édition » .

Au menu :

  • Découverte de l’admin WordPress (idéal pour ne pas avoir à répéter 50x comment ça fonctionne à votre service marketing …)
  • Explication du fonctionnement des thèmes et plugins
  • Découverte de WordPress Mu (version multisite)



14 Commentaires

  • 21/02/2012 - 21:27 | Permalien

    Haha, plutôt cool :) Bienvenue dans le monde où tu fais des squelettes pour tout :3

    • 21/02/2012 - 21:28 | Permalien

      Pour tout, je sais pas.
      Mais il n’est pas impossible que j’en publie quelques uns ;)

  • 01/03/2012 - 20:27 | Permalien

    Salut,

    Excellente idée. Je pense que ce squelette va trouver sa place dans un billet WordPress de A à Z : P comme Plugins :-)

  • 02/03/2012 - 09:00 | Permalien

    Bonjour, je suis Julio Potier, consultant en sécurité web.
    Ce squelette contient une faille de type CSRF, c’est à dire que les options sont sauvegardées sans aucne vérification d’un token de sécurité (nonce).
    Il est urgent de mettre à jour le squelette en respectant le codex :
    http://codex.wordpress.org/Writing_a_Plugin
    http://codex.wordpress.org/Creating_Options_Pages
    http://codex.wordpress.org/WordPress_Nonces

    Bonne journée

    • 02/03/2012 - 09:03 | Permalien

      Effectivement, le nonce n’est pas en place dans ce plugin (ni dans d’autres, d’ailleurs … :/ )
      Je m’empresse de corriger cette brèche.

      Merci ;)

  • 02/03/2012 - 09:04 | Permalien

    Temps de réaction: 3mn
    « New record » bravo jamais vu aussi rapide pour corriger !

    • 02/03/2012 - 09:06 | Permalien

      J’ai pas dit que ça serait fait dans la minute.
      J’ai un peu de taff avant ça ;)

      • 02/03/2012 - 10:10 | Permalien

        Je m’en doute, mais c’est déjà rapide quand même :)
        Je regarderais la MAJ, poke moi sur twitter :p

        • 02/03/2012 - 10:11 | Permalien

          Je le soumettrai à ta validation ;)
          Merci encore.

  • 04/03/2012 - 01:17 | Permalien

    Pour ça :
    const LANG = ‘wp_default_plugin’; // Defaut lang
    pas de define/var/const dans les trads, donc :
    __( ‘text’, LANG ); n’est pas correct
    Ce là est fait avec gettext qui attends une strning pour parser les fichiers php.
    plus d’infos lire ça :
    http://ottopress.com/2012/internationalization-youre-probably-doing-it-wrong/
    (encore lire ! ^^)

  • 04/03/2012 - 01:22 | Permalien

    if (!current_user_can(‘manage_options’)) {
    wp_die( __(‘You do not have sufficient permissions to access this page.’,self::LANG) );
    }

    ne sert à rien puisque tu as déjà mis
    add_options_page(« Default plugin admin page », __(« Default plugin »,self::LANG), ‘manage_options’, …

    « manage_options » ici fait le boulot, impossible qu’il puisse acceder à la page, donc le IF ne sert pas :]

    http://codex.wordpress.org/Function_Reference/add_options_page

  • Les commentaires sont fermés.