WordPress: obtenir le slug d’un post – get_the_slug()

Dans WordPress tous les posts ont un slug unique. Un slug est tout simplement un nom utilisable dans les adresses (url-friendly).

Pandant le developpement de votre thème, vous aurez peut-être besoin d’une fonction comme the_slug() ou bien get_the_slug().

Voici deux manières de coder ces fonctions. D’abors la traditionnelle avec les tableaux PHP:

$post_data = get_post($postID, ARRAY_A);
$slug = $post_data['post_name'];

Et une méthode plutôt efficace proposée par Josh Staufer utilisant permalink() et la fonction PHP basename(). C’est personellement celle que j’utilise.

$slug = basename(get_permalink());

Snippet pour créer the_slug()

Sur le site snipplr.com vous pouvez trouver une fonction interessante qui permet de créer ‘the_slug()‘. Tout ce dont vous avez besoin c’est copier le code suivant dans votre functions.php.

function the_slug($postID="") {
	global $post;
	$postID = ( $postID != "" ) ? $postID : $post->ID;
	$post_data = get_post($postID, ARRAY_A);
	$slug = $post_data['post_name'];
return $slug;
}

Cette fonction est extrêmement efficace parce qu’elle permet l’utilisation de paramêtres, mais pas systématiquement.

  1. Dans votre boucle, affichez le slug du post courant: <?php echo the_slug(); ?>
  2. Partout, affichez le slug d’un post particulier: <?php echo the_slug(’23′); ?>
  3. Partout, récupérez la variable: <?php $slug = the_slug(’23′); ?>

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">