WordPress как на ладони
Мощный и не дорогой хостинг от Fornex.com

Как убрать из кода лишние теги p и br

Всем привет! Подскажите, как убрать из кода лишние теги p и br в вордпресс. Движок имеет такую особенность - это оборачивать в посте, добавленные div и даже section данными тегами. Код жуткий. Подсобите у кого получилось.

Заметки к вопросу:
campusboy 6 мес назад

Почитайте о wpautop

BigDimoz 6 мес назад

Применил:

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

Теперь, в записях от div-вов теги p и br отвязались, но p по-прежнему оборачивpает section; хоть меняй его на div.

Kama 6 мес назад

но p по-прежнему оборачивpает section;

Так не должно быть, может у тебя еще какой-то код есть с этим связанный, плагин может левый какой-то?.. Даже wpautop() не должен оборачивать div и другие блочные теги.

BigDimoz 6 мес назад

Вполне возможно и плагин. Проверил. Результаты на двух сайтах, где пересекаются некоторые плагины, отличаются от третьего, там section по умолчанию не обрачивается тегом p. Далее, начал откючать плагины по одному на первых двух сайтах и проверять, ничего не изменилось. Может дело в теме. Ниже выложу коды.

Фрагменты исходного кода страницы с проблемными участками:
Первый -

<div>DDR</p>*
<div>Тип памяти</div>
</div>

Здесь наверное, вордпресс, возможно вполне логично ставит p в конце открытого дива. Хотя, зачем, непонятно.

  • p исчезает после связки remove_filter

Второй -

<p><section class="details"></p>
...
<p></section></p>

Стартовая и закрывающие секции, получаю в подарок тег p.

Сами необходимые HTML конструкции, примерно (упрощённо), выглядят так:

<div class="gpu_specs_large">
<div>NV34 B1
<div>GPU</div>
</div>
<div>4
<div>Шейдеры (пикс.)</div>
</div>
</div>
<section class="details">
<h4>Графический процессор</h4>
<div>
<dl class="clearfix">
	<dt>GPU (имя)</dt>
	<dd>NV34 B1</dd>
</dl>
<dl class="clearfix">
	<dt>GPU (вариант)</dt>
	<dd>5200 Ultra</dd>
</dl>
</section>

Ссылка на страницу: https://procompsoft.ru/baza_znanij/gpu/nvidia_geforce_fx_5200_ultra_rev_2.html

0
6 месяцев назад
  • 0
    el-lable125 cайт: el-lable.ru
    // remove autoformat
    remove_filter( 'the_content', 'wpautop' );  // Отключаем автоформатирование в полном посте
    remove_filter( 'the_excerpt', 'wpautop' );  // Отключаем автоформатирование в кратком(анонсе) посте
    remove_filter( 'comment_text', 'wpautop' ); // Отключаем автоформатирование в комментариях

    затем, в админке, в пользователях в персональных настройках поставить галочку "Отключить визуальный редактор".
    Потом поставить плагин визуального редактора, например - HTML Editor Syntax Highlighter.
    Все, и будет вам счастье.

    BigDimoz 6 мес назад

    Спасибо за способ! Но не помогает! Какие бы я, не добавлял теги в запись (section, footer и т.д.), даже

    <!-- noindex --><!-- /noindex -->

    и тот получает свой комплект p + br. В чём может быть дело, ума не приложу. Каким-то образом редактор всё, что вводится в запись, представляет, наверное, как обычный текст. Кстати, с шоткодами всё в порядке.

    el-lable 6 мес назад

    Не может не помогать, вы что-то не то делаете.
    Проверьте правильно ли вы вставляете php код с удалением фильтров в вашей теме a файле functions.php

    BigDimoz 6 мес назад

    Что исправляет код на моём сайте, описывал в заметках к вопросу (см. начало):

    Применил:

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

    Теперь, в записях от div-вов теги p и br отвязались, но p по-прежнему оборачивpает section; хоть меняй его на div.

    el-lable 6 мес назад

    вы отключили стандартный визуальный редактор в админке?

    BigDimoz 6 мес назад

    Уже писал:

    Спасибо за способ! Но не помогает! Какие бы я, не добавлял теги в запись (section, footer и т.д.), даже

    <!-- noindex --><!-- /noindex -->

    и тот получает свой комплект p + br. В чём может быть дело, ума не приложу. Каким-то образом редактор всё, что вводится в запись, представляет, наверное, как обычный текст. Кстати, с шоткодами всё в порядке.

    el-lable 6 мес назад

    1) вы отключили в админке стандартный редактор
    2) вы поставили сторонний редактор который я порекомендовал.

    проблема осталась?

    BigDimoz 6 мес назад

    Уже писал:

    Спасибо за способ! Но не помогает! Какие бы я, не добавлял теги в запись (section, footer и т.д.), даже

    <!-- noindex --><!-- /noindex -->

    и тот получает свой комплект p + br. В чём может быть дело, ума не приложу. Каким-то образом редактор всё, что вводится в запись, представляет, наверное, как обычный текст. Кстати, с шоткодами всё в порядке.

    el-lable 6 мес назад

    https://wp-kama.ru/function/add_theme_support#html5
    может это поможет...

    BigDimoz 6 мес назад

    Спасибо за отзывчивость и желание помочь, но пока без результата. Буду экспериментировать.

    BigDimoz 6 мес назад

    Покрутил немного само размещение тегов. И использовал «паровозик» вместо столбика. Вместо:

    Стартовая секция

    <section class="details">
    <h4>Графический процессор</h4>
    <div>
    ...
    </div>
    </section>

    Сделал:

    <section class="details"><h4>Графический процессор</h4>
    <div>
    ...
    </div>
    </section>здесь начало сл. секции →<section class="details"><h4>Дизайн печатной платы</h4>
    <div>
    ...
    </div>
    </section>здесь начало сл. секции →

    То есть прицепил к секциям в одну строку заголовок и начало следующей секции; и «захват» секций тегом p пропал, но образуется перенос, правда он не «красный» и как-то легче переносится. Таким образом обработал все секции. К слову. При переключении из текстового редактора на визуальный и наоборот, естественно всё снова слетает до более красивого столбика. Вот такие аномалии, но продолжаю эксперименты.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация