Remove   from shortcode

时间:2016-03-14 作者:LBF

我不知道为什么我不能让它工作。我正在尝试删除  添加到此短代码中的。。。

[box] Text [/box]
这将导致此HTML输出:

<div class="box">&nbsp; Text &nbsp;</div>
我想删除这些空格。我试图用str\\u替换,但它并没有删除&;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 个回复
最合适的回答,由SO网友:sMyles 整理而成

这可能是由于do_shortcode 正在运行wpautop, 有关禁用该功能的详细信息,请参见此处:https://stackoverflow.com/questions/5940854/disable-automatic-formatting-inside-wordpress-shortcodes

但作为frogg3862 你需要做的不是trim out the beginning and ending whitespace 从…起$content 为了防止non-breaking space 自动添加。

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\');