从ckeditor中的img中删除包装p

Ric*_*vin 6 javascript rte ckeditor

我想删除在ckeditor中默认包装img标签的p标签。

我不想完全禁用p标签或将EnterMode更改为另一个标签。我只想停止将图片换成段落。

我想要完成此操作的客户端,而不是服务器端。

我有:

<p>Some text in a parapgraph.</p>

<p><img src="picture.jpg"></p>

<p>Another paragraph</p>
Run Code Online (Sandbox Code Playgroud)

我想要:

<p>Some text in a parapgraph.</p>

<img src="picture.jpg">

<p>Another paragraph</p>
Run Code Online (Sandbox Code Playgroud)

umm*_*sla 0

快速解决:

如果该行中除了三个标签之外没有其他内容,则此方法将起作用。

$str = "<p><img src=\"/file.jpg\" width=\"1\" height=\"2\" /></p>"
$replaced = preg_replace ( "/<p[^>]*?>(<img[^>]+>)<\/p>/" , "$1" , $str )
Run Code Online (Sandbox Code Playgroud)

更新:

这是一个 PHP 函数。您可以从 JavaScript 调用它。

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

add_filter('the_content', 'filter_ptags_on_images');
Run Code Online (Sandbox Code Playgroud)

参考