Shortcode WordPress : création de shortcode personnalisés

L’utilisation de shortcode dans WordPress facilite l’affichage de modules html ou javascript tels que des sondages ou encore des bannières publicitaires issus de plugins. Mais ils peuvent aussi dépanner dans bien d’autres cas lorsque l’éditeur de WordPress fait des siennes au moment d’afficher des balises html complexes où des caractères spéciaux. Typiquement, l’ajout d’un simble « embed » Youtube ou Google Map peut rapidement virer au cauchemar.

D’où l’utilité de créer soit-même et très facilement des shortcode pour tout et pourquoi pas n’importe quoi. Dans notre exemple, un shortcode Google Map permettant d’afficher sereinement une carte issue de Google en passant l’adresse comme paramètre.

Comme toujours avec WordPress, l’ajout de cette fonction se fera dans le fichier de fonctions de votre thème (functions.php).

// La création d'un shortcode se fait en deux étapes
// Premièrement la création de la fonction et l'ajout de paramètres (ou non)

function cartegoogle_func($atts) {
	extract(shortcode_atts(array(
		'adresse' => 'Lyon'
	), $atts));

// Suivi de la sortie html associée (enrichie ici de notre paramètre d'adresse) :

	return "<iframe width=\"100%\" height=\"350\" frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" src=\"http://maps.google.fr/maps?f=q&source=s_q&hl=fr&geocode=&q=$adresse&ie=UTF8&hq=&hnear=$adresse&output=embed\"></iframe>";
}
// Deuxième et dernière étape, la déclaration du shortcode :
add_shortcode('cartegoogle', 'cartegoogle_func');
//
// Vous pouvez désormais utiliser ceci : [ cartegoogle adresse="Adresse" ] dans vos articles et pages pour afficher la carte Google de votre choix.

Ci-dessous, c’est Paris est passé en paramètre.

[cartegoogle adresse="Paris"]