web-dev-qa-db-fra.com

Supprimer & nbsp; depuis shortcode

Je ne sais pas pourquoi je ne peux pas faire en sorte que cela fonctionne. J'essaie de supprimer le   qui est ajouté à l'intérieur de ce shortcode ...

[box] Text [/box]

Quel est le résultat de cette sortie HTML:

<div class="box">&nbsp; Text &nbsp;</div>

Je veux supprimer ces espaces. J'ai essayé de nous remplacer par str_replace, mais cela ne supprime pas le & nbsp:

function infoButton($atts, $content = null) {
     extract( shortcode_atts( array(

    'class' => '',

    ), $atts ));

    $str = '<div class="box ' . $class . '">' . do_shortcode($content) . '</div>';
    $new_str = str_replace('&nbsp;','',$str);

    return $new_str; 

    }
    add_shortcode('box', 'infoButton');
1
LBF

Cela pourrait être dû au do_shortcode parcourant wpautop, voir ici pour plus de détails sur la désactivation de: https://stackoverflow.com/questions/5940854/disable-automatic-formatting-inside-wordpress- shortcodes

Mais comme frogg3862 l'a dit, vous devez au lieu de cela couper les espaces de début et de fin à partir de $content pour empêcher le espace insécable d'être ajouté automatiquement.

function infoButton($atts, $content = null) {
     extract( shortcode_atts( array(

    'class' => '',

    ), $atts ));

    $str = '<div class="box ' . $class . '">' . do_shortcode( trim( $content ) ) . '</div>';

    return $str; 

}
add_shortcode('box', 'infoButton');
0
sMyles