web-dev-qa-db-fra.com

Comment filtrer $ content dans la fonction shortcode

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' );
1
Top-Bot

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.

0
Top-Bot