我想在ckeditor中删除默认包装img标签的p标签。
我不想完全禁用p标签或将EnterMode更改为另一个标签。我只想停止在段落中包装图像。
我想要完成客户端,而不是服务器端。
我有:
<p>Some text in a parapgraph.</p>
<p><img src="picture.jpg"></p>
<p>Another paragraph</p>
我想:
<p>Some text in a parapgraph.</p>
<img src="picture.jpg">
<p>Another paragraph</p>
答案 0 :(得分:0)
快速修复:
如果除了三个标签之外没有其他任何东西,这将有效。
$str = "<p><img src=\"/file.jpg\" width=\"1\" height=\"2\" /></p>"
$replaced = preg_replace ( "/<p[^>]*?>(<img[^>]+>)<\/p>/" , "$1" , $str )
<强>更新强>
这是一个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');
答案 1 :(得分:0)
jQuery解决方案,用于在显示时解包img标记。 (虽然它不会阻止寄生。)
<script>
$("p img").unwrap();
</script>
它还会打开你在页面上的任何其他图像,所以你可能想要一个更紧凑的选择器。