Créer un shortcode pour WordPress

Créer un shortcode pour Wordpress

Créer un shortcode pour WordPress qui facilite l’affichage et le contrôle de modules HTML.

Les shortcodes sont à insérer dans un aticle ou une page à partir de l’éditeur Visuel ou Text de WordPress, puis transformés par l’API Shortcode.

Créer un shortcode simple

Pour qu’un shortcode soit opérationnel, il faut en premier lieu le déclarer dans le fichier function.php du thème actif ou bien dans l’un des fichiers source d’un plugin.

Créez d’abord une fonction qui retourne une chaine de caractères ou un module HTML, puis utilisez la fonction add_shortcode (voir fichier /wp-content/shortcodes.php ligne 89 pour plus d’infos) pour associer le shortcode à la fonction précédemment déclarée.


function first_shortcode() {

	return 'My first shortcode';

}

add_shortcode('first', 'first_shortcode');

Dans cet exemple, est créé un shortcode [first] qui sera remplacé par la chaine de caractères My first shortcode par l’API Shortcode.

Nota: La fonction return peut être substituée par echo. Toutefois, avec echo, il n’est pas possible d’insérer ce shortcode a l’intérieur d’un bloc HTML comme dans l’exemple ci-dessous:




This is [first] !


Car le contenu du shortcode s’affichera devant la balise p, comme ceci:


My first shortcodeThis is !

Créer un shortcode avec des attribus

Les shortcodes ne se placent pas forcément au millieu d’un bloc de texte. L’inverse est également possible. Dans l’exemple ci-dessous un shortcode transforme une portion de texte en lien hypertexte:

function url_cb($atts, $content = null) {
	extract(shortcode_atts(array(
		"href" => 'http://'
	), $atts));
	return '<a href=""' . $href . '">' . $content . '</a>';
}

add_shortcode( 'url', 'url_cb');

La fonction du shortcode doit être composée de deux arguments:

  • $atts: les attributs du shortcode dont les valeurs par défaut peuvent être définies à l’aide de la fonction shortcode_atts()
  • $content: contenu qui doit être inséré entre les balises ouvrantes et formantes du shortcode lors de sa déclaration dans l’éditeur de texte.

[url href='http://www.formation-wp.com']Créer un shortcode avancé[/url]

Utiliser un shortcode dans un template

WordPress propose une fonction appelée do_shortcode. Avec cette fonction il est possible d’utiliser n’importe quel shortcode au sein d’un template de thème mais aussi d’un fichier source de plugin.


<?php echo do_shortcode('[the_shortcode]'); ?>

Autoriser les shortcode dans les widgets

Par défaut, les widgets n’interprètent pas les shortcodes. Pour que le widget Texte puisse le faire, il suffit d’ajouter le code suivant dans le fichier function.php du thème actif.


if ( !is_admin() ) {

	add_filter('widget_text'. 'do_shortcode');

}

Leave a Reply