ShortCode ou la méthode rapide pour insérer du code dans un article wordpress

Bonjour à tous,

WordPress est un fabuleux outil disponible et accessible à tous tant il est facile à installer, gérer et manipuler au quotidien.
Cependant, nombreux sont les utilisateurs WordPress qui possèdent une connaissance dans la programmation orientée web. Et ceci n’est pas une coïncidence puisqu’étant à même de juger la qualité du code, ils sont à même de juger la globalité du projet: son résultat final mais aussi son coeur, le code.

Et c’est justement d’une des fonctionnalités offert par ce code que je vais vous parler: la possibilité d’intégrer du code PHP dans un article ou page de WordPress.
Bien sur, il existe un plugin à même de le faire facilement: exec-PHP

Mais c’est du côté des ShortCodes que je vais vous emmener. Certes, la documentation officielle traitant du sujet n’est qu’anglaise:
http://codex.wordpress.org/Shortcode_API

Mais à côté de ça, j’ai trouvé un article très bien fait en français:
http://www.webinventif.fr/wordpress-creation-de-shortcode-avance/

L’auteur les présente tout d’abord comme des BBcodes personnalisables mais c’est bien plus que cela, c’est carrément une « étiquette de fonction ».
Et qui dit fonction, dit paramètre que l’on peut intercepter de deux manières différentes:

1) Via les attributs de notre « étiquette », pour choisir par exemple le nombre de colonnes de notre galerie et l’option de pointer la miniature sur le fichier orignal:
[gallerietest columns= »3″ link= »file »]
Ces paramètres seront listés le tableau attendu comme premier argument ($arguments) de notre fonction personnelle (dans le fichier functions.php de votre thème)

  1. span class= »co1″>//…
  2. //$arguments vaut donc array("columns’ => "4", "link" => "file");
  3. "gallerietest", "sebastest");
  4. //On notera au passage que cette dernière fonction appelée assigne au shortcode "gallerietest", la fonction "sebastest"
  5.  

2) Via le contenu englobé de mon étiquette, par exemple [inverser]montexte[/inverser]
Dans ce cas-ci, c’est le second argument qui sera rempli de la chaîne englobée (la variable $contenu de mon exemple précédent).

Evidemment comme WordPress est très bien fait, on va pouvoir utiliser à la fois les arguments et le contenu englobé dans une même fonction.
Je ne parviens d’ailleurs pas à résisiter à la tentation de vous en créer un (totalement inutile) mais complet:

  1. span class= »co1″>//On commence par vérifier l’argument "nombre"
  2. ‘nombre’‘nombre’]):3;
  3.     //On place la fin de chaine au début…
  4. //…Et le début à la fin
  5. //Et on renvoie la chaine ainsi formatée!
  6. "decaler", "tourner_manege");
  7.  

Qui me permettra avec ce code:

  1. [decaler nombre="7"]Mon texte pourtant très joli[/decaler]

d’obtenir ceci:
[rotation_texte nombre= »7″]Mon texte pourtant très joli[/rotation_texte]