提问者:小点点

如何创建一个短代码/编辑一个函数来解决Bootstrap和wpautop在Wordpress中的冲突


下面从我以前未解决的问题如何显示引导按钮内联,而不是在WordPress中的每行一个具体?经过这方面的广泛研究,我发现Wordpress和Bootstrap之间存在冲突。

我找到的唯一解决方案(在上面提到的另一个问题中显示为编辑)是添加这个函数:remove_filter('the_content','wpautop');

然而,这个函数在解决Bootstrap问题的同时,迫使我在所有帖子的所有文本上编写完整的html,否则文本将显示为一个未格式化的块。

作为解决这个问题的一种方法,我想到了将Bootstrap组件放在div标签中,然后创建一个短代码,将此过滤器应用于div标签的内容,或者创建一个函数,以该div标签为目标,而不需要添加短代码...

首先,我创建了这个短代码函数,但它没有做任何事情:(是的,它没有指定div标记,但我正在测试短代码是否有效,但它没有)。

    function stop_wpautop(){
    remove_filter( 'the_content', 'wpautop' );
}
    add_shortcode( 'stop-wpautop', 'stop_wpautop'); 

我还尝试用一个div标记类名替换内容,我用这个类名包装引导组件,但它也不起作用。

    function stop_wpautop(){
    remove_filter( 'bootstrap-components', 'wpautop' );
}
    add_shortcode( 'stop-wpautop', 'stop_wpautop'); 

最后,我添加了没有短代码的过滤器,但它也不起作用:

remove_filter('bootstrap组件','wpautop');

所以很明显,我把函数写错了。有人能指导我出了什么问题吗,或者任何将wpautop的效果限制在某个div标记上的建议?

编辑我可以在自定义字段中添加引导代码,然后显示自定义字段内容,如果这会使事情变得更容易,但是我仍然不知道如何用自定义字段名称替换the_content

提前感谢。


共1个答案

匿名用户

这是我用来输出测试按钮的函数。

add_shortcode('show_boot_buttons', 'func_show_buttons');

function func_show_buttons( $atts ) {
    $atts = shortcode_atts(
        array(
            'class' => 'btn',
            'text' => 'Press Me',
        ), $atts, 'show_boot_buttons' );

    return '<button type="button" class="btn ' . esc_html( $atts['class'] ) .'">'. esc_html( $atts['text'] ). '</button>';
}

可以使用以下代码示例插入按钮。

[show_boot_buttons class="btn-primary" text="Press This"]