Je voudrais filtrer le contenu $ dans ma fonction shortcode pour que tout ce que je reçois soit le shortcode. J'essaie d'imbriquer dynamiquement un shortcode dans un autre.
Voici mon code
function add_slider ($atts, $content='') {
$atts = shortcode_atts(array (
'align' => 'center',
'width' => '50%',
'height' => 'auto'
), $atts);
/* foreach($videos as $video) :
$return.='<li><a href="'.get_permalink().'">'.the_title("","",false).'</a></li>';
endforeach;
*/
if( has_shortcode( $content, 'video' ) ) {
$content = do_shortcode($content);
return '<ul class="bxslider">' . $content . ' </ul>';
}
else {
return '<ul class="bxslider"> <li> No Videos Found In Slider </li> </ul>';
}
}
add_shortcode('slider','add_slider' );
J'ai résolu mon propre problème.
Je devais filtrer tout le <br>
et les espaces entre mes balises shortcode. WP ajoutait automatiquement des pauses que mes fonctions ajoutaient à la sortie de mon shortcode. J'ai donc utilisé la fonction balises strip pour filtrer le contenu $ de mon shortcode
$content = strip_tags($content);
J'ai ajouté ceci à ma fonction de shortcode et cela a fonctionné à merveille!
Merci aux personnes qui ont signalé les problèmes potentiels liés à la réponse précédente.