Вопрос или проблема
Когда я пишу описание для продукта WooCommerce и вставляю разрыв строки с помощью тега br или p, WordPress автоматически удаляет его. Это очень раздражает, потому что в некоторых местах мне нужно делать небольшой разрыв строки.
Я часто находил решение установить TinyMCE. После этого WordPress больше не удаляет тег p, но вставляет внутри него  , из-за чего разрыв строки становится слишком большим.
Поэтому я хочу разрыв строки, как у тега p, потому что npsb создает слишком много пространства между двумя предложениями.
Я также попробовал следующие решения:
-
добавить некоторые атрибуты к тегу p, например,
<p data-x></p>
-
Обернуть тег p в комментарии, как
<!-- wp:html --> <p class="beer"></p> <!-- /wp:html -->
- Добавил несколько хуков в functions.php, например
add_shortcode("br", "br_tag"); function br_tag(){ return("<br/>"); }
или
remove_filter('the_content', 'wpautop'); remove_filter('the_excerpt', 'wpautop');
и
remove_filter( 'the_content', 'wpautop' ); remove_filter( 'the_excerpt', 'wpautop' ); function wpse_wpautop_nobr( $content ) { return wpautop( $content, false ); } add_filter( 'the_content', 'wpse_wpautop_nobr' ); add_filter( 'the_excerpt', 'wpse_wpautop_nobr' );
- Я попробовал следующее решение, но оно не сработало WordPress автоматически добавляет “ ”?
“Лучшее” решение, которое я нашел, заключалось в том, чтобы не использовать визуальный и текстовый редактор, но для меня это такое временное решение.
Характеристики:
WordPress 5.6
Advanced Editor Tools (ранее TinyMCE Advanced): 5.6
WooCommerce: 4.6.1 (но, на мой взгляд, это не проблема WooCommerce)
Кто-нибудь знает лучшее решение или источник для этой проблемы?
Проблема решена активацией опции “предотвратить удаление <br>
и <p>
тега” и вставкой <p><!-- Break --></p>
при использовании тега <p>
. Комментарий предотвращает удаление тега или его заполнение &npsb.
Лучшее практическое решение для WordPress — использовать как можно меньше плагинов, нижеописанный метод позволяет вставлять разрыв строки без использования сторонних плагинов.
- Перейдите на экран редактирования страницы/поста, адресная строка браузера должна быть такой, например, https://www.yourdomain.com/wp-admin/post.php?post=5&action=edit
- Нажмите текстовый редактор
3) Избегайте написания <p>, <br> или <span>
, используйте <br class="">
, если хотите вставить новую строку.
Ответ или решение
Чтобы решить проблему автоматического удаления переносов строк в WordPress, особенно когда речь идет о написании описания продукта в WooCommerce, необходимо понимать, как работает обработка контента в этом CMS. Вот некоторые шаги и рекомендации, которые помогут вам добиться желаемого результата.
1. Отключение автоматического форматирования
Первый шаг – отключить автоматическое добавление тегов <p>
и <br>
, которое выполняется функцией wpautop
. Это можно сделать с помощью добавления следующих строк в файл functions.php
вашей темы:
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
Однако, будьте осторожны, так как это может повлиять на отображение вашего контента в целом. Альтернативный метод – использовать пользовательскую функцию, чтобы отключить автоматическое добавление <p>
и оставить возможность использовать переносы строк:
function wpse_wpautop_nobr( $content ) {
return wpautop( $content, false );
}
add_filter('the_content', 'wpse_wpautop_nobr');
add_filter('the_excerpt', 'wpse_wpautop_nobr');
2. Использование специальных комментариев
Согласно вашему описанию, использование комментариев внутри тегов <p>
помогло предотвратить удаление этих тегов:
<p><!-- Break --></p>
Это довольно хитрое решение, которое позволяет WordPress не обрабатывать содержимое этого тега так, как он обычно делает. Вы можете использовать этот подход на всех ваших страницах, где хотите сохранить перенос строки.
3. Визуальный и текстовый редактор
Правильный выбор редактора также может сыграть роль. Иногда использование текстового редактора вместо визуального может помочь избежать добавления лишних пробелов и переносов. Чтобы переключиться на текстовый редактор, просто выберите вкладку "Текст" на экране редактирования.
4. Инъекция пользовательских стилей
Если вам нужен специфичный стиль для ваших переносов строк, вы можете добавить пользовательские стили через файл style.css
вашей темы или через настройки в админке. Например, вы можете создать класс для более легкого и аккуратного отображения переносов строки:
.br-class {
display: block;
margin: 0;
padding: 0;
}
И использовать его следующим образом:
<span class="br-class"></span>
Это будет служить линией переноса, не создавая излишнего пространства.
5. Плагины для кастомизации
Если при использовании подходов выше проблема сохраняется, вы можете рассмотреть возможность использования плагинов для управления HTML-контентом и визуальным редактором. Хотя следует помнить о том, что использование большого количества плагинов не является лучшей практикой.
Заключение
Проблема с автоматическим удалением тегов <br>
и <p>
в WordPress может быть решена с помощью вышеперечисленных методов. Лучшей практикой является создание аккуратного и стабильного контента без ненужных плагинов и с использованием проверенных методов, таких как пользовательские комментарии или кастомные стили. Применяя эти советы, вы сможете более эффективно управлять форматированием вашего контента в WooCommerce.