2014-11-18 2 views
4

Я хочу удалить теги p, которые обертывают теги img по умолчанию в ckeditor.Удалить обертывание p из img в ckeditor

Я не хочу полностью отключать 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> 
+4

Downvoters - по крайней мере, скажите, почему вы делаете downvoting. Кажется, это совершенно разумный вопрос. Если бы вы объяснили, почему это не так, может быть, не только читатель, но и другие читатели могут чему-то научиться. Выпущено для борьбы. –

ответ

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'); 

Reference

+0

В идеале хочу сделать клиентскую сторону –

+0

Обновлено. Удачи вам. – ummahusla

0

решение JQuery разворачивать IMG тег во время отображения. (Это не остановит пункты будучи положить в хотя.)

<script> 
    $("p img").unwrap(); 
</script> 

Он также разворачивать любые другие изображения, которые вы имеете на странице, так что вы, вероятно, хотите более жесткий селектор.

+0

Спасибо, я попробую. –

Смежные вопросы