Одни люди ищут - причины, другие - возможности, выигрывают последние

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.

Ответить
Обязательные поля помечены *