Что нужно сделать чтобы wordpress не создавал пустой тег p

WordPress иногда автоматически добавляет пустые теги

из-за встроенной функции автоформатирования текста — wpautop. Эта функция преобразует переносы строк и пустые строки в p и br теги. Особенно это проявляется в контенте, где между блоками текста есть пустые строки или нестандартные HTML-структуры.

Как отключить добавление пустых :

1. Отключить wpautop глобально В файле вашей темы (обычно functions.php), добавьте:

remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');

Минус: Это отключит автоформатирование вообще для всего контента, и вам нужно будет вручную расставлять p и br в редакторе.

2. Отключить wpautop для конкретного поста или шаблона

Если нужно отключить автоформатирование только в определённых местах:

remove_filter('the_content', 'wpautop', 10);

Можно вставить это прямо в нужном шаблоне перед выводом контента.

3. Использовать функцию shortcode_unautop

Если вы используете шорткоды, WordPress иногда вставляет p вокруг них. Чтобы избежать этого:

add_filter('the_content', 'shortcode_unautop');

4. Чистка пустых p с помощью регулярного выражения

Если проблема в появлении пустых p, можно убрать их через фильтр:

add_filter('the_content', 'remove_empty_p', 20, 1);
function remove_empty_p($content){
    // Удаляет пустые <p> теги
    $content = preg_replace('/<p>\s*(?:&nbsp;|\s)*<\/p>/i', '', $content);
    return $content;
}

5. Использовать редактор Gutenberg (Блоковый редактор)

Gutenberg меньше склонен вставлять ненужные пустые теги, чем классический редактор, особенно если вы используете блоки правильно. Мне лично он не очень нравится.

6. Плагинное решение

Существуют плагины вроде Disable wpautop или Advanced TinyMCE Settings, которые позволяют управлять автоформатированием более гибко.

В зависимости от задачи, можешь выбрать:

  • Глобально убрать wpautop;
  • Отключить точечно;
  • Ловить и чистить пустые теги регулярками.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *



Рекламный блок, для развития проекта