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 ).
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)

Contact
14 Commentaires
Haha, plutôt cool
Bienvenue dans le monde où tu fais des squelettes pour tout :3
Pour tout, je sais pas.
Mais il n’est pas impossible que j’en publie quelques uns
Salut,
Excellente idée. Je pense que ce squelette va trouver sa place dans un billet WordPress de A à Z : P comme Plugins
Si ça t’intéresse, j’ai quelques plugins sur github : https://github.com/chibani/
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
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
Temps de réaction: 3mn
« New record » bravo jamais vu aussi rapide pour corriger !
J’ai pas dit que ça serait fait dans la minute.
J’ai un peu de taff avant ça
Je m’en doute, mais c’est déjà rapide quand même
Je regarderais la MAJ, poke moi sur twitter :p
Je le soumettrai à ta validation
Merci encore.
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 ! ^^)
Effectivement, au moment du parse par GNU gettext (à ne pas confondre avec la fonction PHP), le code PHP n’est pas exécuté.
Du coup, il n’arrive pas à déterminer le domain.
http://markjaquith.wordpress.com/2011/10/06/translating-wordpress-plugins-and-themes-dont-get-clever/
(j’aime lire, mais parfois, je lis un peu trop vite :p )
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
Merci encore Julio