Remove <p></p> after images

时间:2017-10-11 作者:Oliver Martin

我对<p></p> 出现在my之后的标记<img....>. 以下是我在本地主机上查看生成的页面时显示的内容。。。

<img src="/wp-content/themes/wunderful/assets/images/feedback-danielle.png" alt="Danielle Johnson Deal Town FC Treasurer">
<p></p>
请注意随机生成的<p></p> 上图,下图。我自己还没有在WordPress编辑器中添加这个,为什么会出现呢?请问我该怎么修?

我之前已将此添加到我的函数中。php文件来取消其他不必要的标记。也许可以扩展它来解决这个问题?

function filter_ptags_on_images($content)
{
    // do a regular expression replace...
    // find all p tags that have just
    // <p>maybe some white space<img all stuff up to /> then maybe whitespace </p>
    // replace it with just the image tag...
    return preg_replace(\'/<p>\\s*(<a .*>)?\\s*(<img .* \\/>)\\s*(<\\/a>)?\\s*<\\/p>/iU\', \'\\1\\2\\3\', $content);
}

// we want it to be run after the autop stuff... 10 is default.
add_filter(\'the_content\', \'filter_ptags_on_images\');

2 个回复
SO网友:Randomer11

可能与您的代码略有不同:

function filter_ptags_on_images($content) {
    $content = preg_replace(\'/<p>\\s*(<a .*>)?\\s*(<img .* \\/>)\\s*(<\\/a>)?\\s*<\\/p>/iU\', \'\\1\\2\\3\', $content);
    return preg_replace(\'/<p>\\s*(<iframe .*>*.<\\/iframe>)\\s*<\\/p>/iU\', \'\\1\', $content);
}
add_filter(\'the_content\', \'filter_ptags_on_images\');

SO网友:Jaed Mosharraf

你可以这样试试

function filter_ptags_on_images($content) {
    $content = str_replace( "><p></p>", "", $content );
}
add_filter(\'the_content\', \'filter_ptags_on_images\');
让它试试吧

结束

相关推荐

更改允许的注释的HTML标记

我已经为WordPress评论设置了一个HTML编辑器,我想相应地更改允许的评论HTML标记。一些HTML标记还添加了内联样式或类。我只想允许我期望的样式和类,但我无法让它工作。我想允许only 这些自定义类和样式。<span class=\"spoiler\">This is spoilered text</span><span style=\"text-decoration: line-through;\">This text has strikethrough&l