[fancy_header tag= »h1″]WordPress : Comment créer un shortcode ?[/fancy_header]
[p]Ce tutoriel s’adresse à des personnes ayant des connaissances en PHP ou plus si affinité...[/p]
Que diriez-vous de créer un shortcode simple, dont le rôle sera par exemple de lister
les derniers articles publiés sur votre blog ? Placé par exemple dans une page statique,
il fournira sous forme de liste les titres des derniers articles avec un lien vers chacun
d’eux.
[p]Pour traiter le shortcode, il faudra utiliser une nouvelle classe de notre plugin qui
sera dédiée au rendu de la liste des derniers articles. Ajoutez donc un nouveau fichier
recent.php dans lequel vous définirez une classe Zero_Recent, elle-même étant instanciée
dans le constructeur de la classe Zero_Plugin, comme cela a été fait pour les classe
précédentes.[/p]
1 2 3 4 5 6 7 8 9 10 11 |
<?php class Zero_Plugin { public function __construct () { // ... include_once plugin_dir_path ( __FILE__ ).'recent .php '; new Zero_Recent (); ?> |
[p]Il faut ensuite déclarer le shortcode afin que WordPress sache le reconnaître dans le
contenu d’une publication. On utilise pour cela la méthode add_shortcode(), qui attend
en paramètres le nom du shortcode ainsi que la fonction à appeler lors de son rendu.
Placez donc cet appel dans le constructeur de la classe Zero_Recent.[/p]
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php class Zero_Recent { public function __construct () { add_shortcode (' zero_recent_articles ', array ($this , ' recent_html ')); } } ?> |
[p]WordPress a dorénavant connaissance du nouvel élément, il ne lui manque que la définition
de la fonction à appeler pour l’afficher. Cette dernière recevra deux arguments
lors de son appel : le premier est un tableau des paramètres permettant de configurer
le shortcode, le second est la valeur du contenu si le shortcode a été déclaré avec les
deux balises ouvrante et fermante[/p]
1 2 3 4 5 6 7 |
<?php public function recent_html ($atts , $content ) { } ?> |
[p]La première chose à faire est d’initialiser des valeurs par défaut pour les paramètres
du shortcode, si jamais ceux-ci n’ont pas été fournis. En effet, un shortcode doit au
maximum pouvoir être utilisé sans paramètres, il faut donc prévoir un comportement fonctionnel dans ce cas. Pour fusionner simplement le tableau de paramètres fournis et
les valeurs par défaut, WordPress propose la fonction shortcode_atts().[/p]
1 2 3 4 5 |
<?php $atts = shortcode_atts ( array ('numberposts ' => 5), $atts ); ?> |
[p]Une fois les arguments filtrés, vous pouvez récupérer la liste des derniers articles avec la
fonction get_posts(), pour laquelle les paramètres doivent être envoyés dans un tableau
comme premier argument. La fonction renverra alors une liste d’articles, qui sont par
défaut triés par date décroissante, ce qui correspond à nos besoins.[/p]
1 2 3 4 5 |
<?php $posts = get_posts ( $atts ); ?> |
[p]Il ne reste plus qu’à parcourir la liste des articles et à les insérer dans une liste au
format HTML, avec un lien permettant d’afficher chacun d’entre eux. Si la variable $content a été définie par l’utilisateur du shortcode, vous pouvez l’insérer par exemple au dessus de la liste, ce qui permet de rajouter un texte de présentation.[/p]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $html = array (); $html [] = $content ; $html [] = '<ul >'; foreach ( $posts as $post ) { $html [] = '<li ><a href =" '. get_permalink ( $post ).'">'.$post -> post_title .' </a ></li >'; } $html [] = ' </ul >'; echo implode ('', $html ); ?> |
[p]À l’affichage de la page, vous obtenez la liste à jour des trois
derniers articles publiés.[/p]
[fancy_header]En résumé[/fancy_header]
[p]Un shortcode est un morceau de code PHP que l’on insère directement au sein
d’une publication. Il permet l’affichage de contenu sans savoir même coder.
Les shortcodes peuvent récupérer des paramètres fournis par le contributeur
d’un article pour modifier leur affichage.
Il existe plusieurs formats pour les shortcodes, avec une seule ou deux balises
pour rajouter du contenu.[/p]
(tutoriel signé Julien Chichignoud).