Как убрать лишние теги br и p в WordPress

Сайтостроение WordSmall

По умолчанию WordPress автономно создает тег параграф <p>, где есть отступы между строками. И также тег переноса <br>, где происходит перенос текста на новую строку. Такое автодобавление может навредить в работе ставки кода в статью или формы и прочего.

К примеру, вы вставляете в статью чистый HTML код какой-нибудь таблицы. Затем задаете ей стили обтекание, выравнивание и т.д. И что вы видите в результате: части таблицы налазят друг на друга, выравнивание не по одной линии и другие различные мелочи. В итоги ломается вся таблица и отображается не так, как задумано. Если посмотреть через браузер исходный код таблице, то будет видно, что WordPress автоматически добавил тег перенос строки <br>.

Как убрать лишние теги br и p в WordPress

Как с этим бороться или как это исправить?

Есть несколько решений, как убрать автодобавление тегов <br> и <p> в WordPress. Рассмотрим каждое на эффективность, простоту и удобства.

Редактирование файла functions.php

При необходимости можно убрать тег <br> и <p> не только в статьях, а и в анонсе и комментариях. Нужно внести пару строк в файл functions.php, который находится внутри вашей темы (или использовать дочернюю тему). В конце перед знаком ?> добавляем следующий код:

remove_filter( 'the_content', 'wpautop' );// для контента
remove_filter( 'the_excerpt', 'wpautop' );// для анонсов
remove_filter( 'comment_text', 'wpautop' );// для комментарий

Плюс этого решения: после обновления WordPress не нужно ничего заново добавлять.

Плагин TinyMCE Advanced

Этот плагин является мощным HTML-редактором. С помощью его вы сможете добавлять новые кнопки в редактор WordPress, количество которых довольно большое. Но нас интересует совсем другое, в настройках плагина можно поставить флажок на запрет тегов <br> и <p>.

Как убрать лишние теги br и p в WordPress

Минус этого решения: лишний плагин, тем самым лишняя нагрузка.

Если все эти решения вам не помогли избавиться от тегов <br> и <p>, то есть еще один вариант. На мой взгляд — это самое лучшее решение, простое и ничего лишнего. Тем более, все вышеуказанные методы отключают теги везде где указано. То есть если в контенте, то их везде не будет, если в анонсах, то так же. Чтобы избежать этого и не убрать их там, где они должны быть, то следует поступить так.

Создаете блок div с каким-нибудь классом, к примеру:

<div class="bezbrp">….</div>

В файле style.css задаете этому классу стили.

.bezbrp br {
display: none !important;
padding: 0px !important;
margin: 0px !important;
line-height: 0px !important;
border: 0px !important;
}

И теперь, когда будете вставлять код в статью, то его нужно обернуть в div с этим классом. После чего все будет отображаться корректно. Если остались вопросы задавайте их в комментариях.

Автор, он же Андрей, он же Admin, он же WordSmall

Лентяй-любитель, окончил высшую школу безделья с многочисленными знаками отличия. Создатель этого небольшого «чудо-блога» о еще более «чудном» контенте.

E-mail Google+ Twitter
Комментариев: 8
  • Игорь

    Идем по такому пути, папка с движком WordPress/wp-includes/ и находим файл с именем default-filters.php. В файле ищем такую строку: ... И просто закомментируем ее.

    Автор, ты чего? Убери это вообще.

    • WordSmall

      Спасибо за поправку, но грубить не нужно! Это было давно и неправда.

  • yana

    спасибо. очень помогло

  • vmax1

    У меня такая же проблема в блоггере. Есть ли там решения? Спасибо.

    • WordSmall

      К сожалению, тут помочь не смогу. Разве что пробуйте последний вариант — прописывая вручную стили, предварительно обернув часть текста/кода в див с определенным классом.

  • Alex

    Когда, как правило, не работаешь с CMS и вдруг сталкиваешься с подобным, первым делом ищешь хитрые скрипты, которые могут калечить код. Потому что, просто забываешь, что CMS это не совсем интрумент для разработчика. Перебрав скрипты и сообразив, что это Вордпресс, добрался до default-filters.php, начал искать нужный хук и только тогда обнаружил Вашу статью.

    Спасибо.

    • WordSmall

      Не за что. Рад помочь! Думаю, всегда есть несколько вариантов решения какой-либо задачи, нужно только их поискать)

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