Удалите <p> </ p> после изображений

У меня проблема с тегами <p></p> появляющимися после моего <img....> . Вот что появляется, когда я просматриваю сгенерированную страницу на моем localhost …

 <img src="/wp-content/themes/wunderful/assets/images/feedback-danielle.png" alt="Danielle Johnson Deal Town FC Treasurer"> <p></p> 

Обратите внимание на случайно сгенерированное <p></p> выше, под изображением. Я не добавил это в редактор WordPress, так почему он появляется? Как мне это исправить?

Я ранее добавил это в свой файл functions.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'); 

Solutions Collecting From Web of "Удалите <p> </ p> после изображений"

Вы можете попробовать таким образом

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

Пусть попробует

Может быть, немного отличается от вашего кода:

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