WordPress不断向短代码和内容添加自动段落标签

时间:2018-07-13 02:43:21

标签: php html wordpress shortcode

我似乎无法阻止wordpress自动将段落添加到我键入的每一行,包括简码和我输入到视觉作曲家的任何原始HTML。我已经尝试了“ Toggle wpautop”和“ Raw html”插件来尝试对其进行转换,但是它永远无法正常工作。是因为我正在使用视觉作曲家吗?它只是将p标签包裹在几乎所有内容上。

enter image description here

3 个答案:

答案 0 :(得分:1)

问题不是Visual Composer引起的,它纯粹是由于autop上的the_content筛选器引起的。有几种解决方法,但是恕我直言,内容过滤器是处理它的最佳方法。

如果您方便地编辑functions.php,可以通过添加以下内容来过滤the_content钩子,以删除strtr短代码周围的<p>标签:

add_filter('the_content', 'remove_unneeded_silly_p_tags_from_shortcodes');
function remove_unneeded_silly_p_tags_from_shortcodes($the_content){
    $array = array (
        '<p>['      => '[', //replace "<p>[" with "["
        ']</p>'     => ']', //replace "]</p>" with "]"
        ']<br />'   => ']' //replace "]<br />" with "]"
    );
    $the_content = strtr($the_content, $array); //replaces instances of the keys in the array with their values
    return $the_content;
}

其他选择(like removing autop from the_content)往往会产生深远的影响,因此我倾向于避免这种情况。您也可以尝试从要添加的特定段落标签中删除页边样式,但是由于自动添加,可能难以定位该特定标签...

答案 1 :(得分:1)

尝试一下,在您的functions.php中

remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );

答案 2 :(得分:0)

我修改了@Frits答案。这往往可以修复显示在屏幕底部的令人讨厌的Google Chrome移动版“简化视图”。

add_filter('the_content', 'remove_unneeded_silly_p_tags_from_shortcodes');
function remove_unneeded_silly_p_tags_from_shortcodes($the_content){
    $array = array (
        '<p>'      => '',
        '</p>'     => '<br /><br />'
    );
    $the_content = strtr($the_content, $array); //replaces instances of the keys in the array with their values
    return $the_content;
}

一个问题,它删除了您添加到段落标签中的所有CSS样式。但是好处是显而易见的:没有Google Chrome Mobile na!