Bonjour,
Je voudrais pouvoir passer une variable à une fonction <code>do_shortcode</code>. Je n'arrive pas à trouver de solution sur le net. Voilà ce que je cherche à faire :

<?php
    $tags = '202';
    echo do_shortcode('[tribe_events_list tags="#$tags" limit="3"]');
?>

La variable n'est pas du tout prise en compte.
Si quelqu'un connait la bonne syntaxe …
Merci !

2 réponses


Sur l'aspect technique de PHP :

<?php

// En utilisant des guillemets simples :
// Tu dois absolument utiliser une concaténation.
echo do_shortcode('[tribe_events_list tags="#' . $tags . '" limit="3"]');

// En utilisant des guillemets doubles :
// Tu dois cependant échapper les prochains guillemets doubles à l'intérieur de ta chaîne de caractères... 
// Ta variable $tags sera prise en compte.
echo do_shortcode("[tribe_events_list tags=\"#$tags\" limit=\"3\"]");

// Dans le même cas, si jamais ta variable $tags était suivie de quelque chose d'autre (ou serait un tableau),
// Tu pourrais entourer cette variable d'accolades.
echo do_shortcode("[tribe_events_list tags=\"#{$tags}SuperSuffix\" limit=\"3\"]"); // Autrement $tagsSuperSuffix serait ta variable.
echo do_shortcode("[tribe_events_list tags=\"#{$tags['quelqueChose']}\" limit=\"3\"]");
hatfab
Auteur

Salut Ramzz1994,
Merci beaucoup pour ce cours de syntaxe. Dans mon cas la première solution suffit mais les autres sont riches d'enseignement.
Je me mets ça de côté : )
Bonne journée !