WordPress: как убрать лишний тег p (параграф)
Для многих из нас становится откровением, когда мы узнаем, что по умолчанию WordPress пытается помочь нам, и автоматически вставляет в наш текст тег p (параграф) пытаясь семантически правильно разбить текстовку на параграфы.
Да, по большей части я одобряю такое поведение, однако, с ростом потребностей к верстке мы уже сами желаем контролировать расположение и разбивку элементов и вот здесь, эта особенность из коробки становится раздражающим фактором, когда этот тег <p> появляется в очень неожиданных и нежеланных местах.
Странно, что эту опцию невозможно выключить из консоли администрирования или из файла конфигурации WordPress, однако, не зря мы пользуемся этой универсальной CMS, с которой легко начать работать и довольно легко выйти за рамки этой простоты заставляя ее работать так, как нам необходимо.
Так как же выключить автоматическую вставку тега p?
К каждой теме сайта на WordPress может быть добавлен (либо он уже существует), специальный файл functions.php, который позволяет настраивать или изменять функционал этой темы, добавляя в нее индивидуальные особенности.
Таким образом, через этот файл мы можем отключить автоматическую вставку нежелаемого тега <p> вставив туда определенные команды.
Первым делом нам необходимо найти этот файл. Он расположен в корневой директории текущей темы вашего сайта. К примеру, для классической темы Twenty Twenty от команды WordPress, вы найдете его здесь:
wp-content/themes/twentytwenty/functions.php
Если такого файла нет, естественно, его необходимо создать.
После того, как мы определились с файлом, его необходимо отредактировать, вставив туда следующий код:
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
Если файл был создан с нуля, не забываем добавить в его начало открывающий тег <?php. Таким образом, итоговое содержимое файла будет выглядеть так:
<?php
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
Что делают эти команды?
Они отключают выполнение внутренней функции wpautop во время вывода содержимого записей и страниц (фильтр the_content),
а также во время вывода анонсов (фильтр the_excerpt).
Собственно сама функция wpautop изначально заменяет двойные переводы строк на тег параграфа p. Оставшиеся после
замены одиночные переводы строк заменяются на тег переноса строки br.