But
Il peut être utile de créer un shortcode afin d’injecter un résultat de code php dans un article ou une page.
Dans l’exemple suivant le shortcode permet de déterminer l’age en fonction de la date de naissance que l’on passera en paramètre de notre shortcode sous la forme naissance='jj/mm/aaaa'
Code
1. Tout d’abord il faut ajouter une fonction dans le fichier functions.php qui se situe à la racine du thème que l’on utilise.
/* * Retourne l'age en année à partir d'une date de naissance au format jj/mm/aaaa * array $atts date de naissance * string age en années */ function age($atts) { $naiss['Y'] = substr($atts['naissance'], 6); $naiss['n'] = (int) substr($atts['naissance'], 3, 2); $naiss['j'] = (int) substr($atts['naissance'], 0, 2); $an = date('Y')-$naiss['Y']; if ( date('n') < $naiss['n'] || (date('n') == $naiss['n'] && date('j') < $naiss['j']) ) $an = $an -1; $an .= ' ans'; if ( date('n') == $naiss['n'] && date('j') == $naiss['j'] ) $an .= ' aujourd\'hui !!'; return $an; }
La fonction prend donc un argument atts
de type array qui va contenir tous les arguments que l’on passe à notre shortcode. Dans notre exemple, un seul argument naissance
qui sera sous la forme jj/mm/aaaa
On traite l’argument naissance
sur les 3 premières lignes, puis on effectue le calcul en ajoutant éventuellement une précision si on est le jour même.
Enfin on revoie la chaine de caractères représentant l’age.
2. Il suffit alors de déclarer le shortcode juste en dessous de la fonction.
add_shortcode('neodsi_mon_age','age');
Le premier argument est le nom du shortcode, et le deuxième est le nom de la fonction qui effectue le traitement.
Utilisation
Le shortcode est placé dans un article ou une page de la façon suivante :
J'ai [neodsi_mon_age naissance='20/08/1974']
ce qui donnera : J’ai 50 ans