Как автоматически добавлять теги параграфов в Визуальном Редакторе
Судя по моему поиску в Google, стандартное поведение WordPress заключается в том, чтобы автоматически добавлять параграфы, но в режиме HTML, независимо от того, какой стиль я выбираю в выпадающем списке стилей Визуального Редактора (например, параграф), теги параграфов никогда не появляются. Я также не вижу вызова функции wpautop()
где-либо в моей теме (которую я унаследовал от ушедшего разработчика).
Что я могу сделать, чтобы исправить это? Добавление тегов <p>
ко всему вручную определенно не подходит для редакторов контента.

Разве это не кажется немного глупым? Абзацы — это, ну, абзацы: почему бы не обернуть их в соответствующую разметку?

Вы можете написать патч, чтобы изменить это поведение, но сомневаюсь, что его реализуют. :)

Я с этим смирюсь. Где мне нужно покопаться, чтобы снова включить эту функцию? Я просто прогнал wpautop
через grep в директории темы, но ничего не нашёл.

Что именно нужно включить заново? wpautop()
добавляется как фильтр к the_content
в файле wp-includes/default-filters.php
.

Странно, он там есть (add_filter( 'the_content', 'wpautop' );
), но когда я создаю новую страницу, ввожу абзац, добавляю перенос строки (и выделяю текст, выбирая стиль "абзац"), в визуальном редакторе всё выглядит отлично, но после публикации теги абзаца не оборачивают текст; поэтому я добавляю их вручную во вкладке HTML.

@gravyface У меня такая же проблема при использовании (очень простой) пользовательской темы, но если я переключусь обратно на, например, тему twenty-twelve, абзацы отображаются корректно. Это похоже на то, что что-то в моей теме сделало remove_filter('the_content', 'wpautop')
... но этого там нет. Я даже явно добавил add_filter(...)
, но безрезультатно. Вы нашли решение?

Одно из решений — это установить плагин TinyMCE Advanced. В настройках плагина есть опция "Прекратить удаление тегов <p>
и <br />
при сохранении и показывать их в HTML-редакторе".

Я тоже столкнулся с этой проблемой и был готов сойти с ума, перепробовав все вышеупомянутые способы и другие идеи. Оказалось, что клиент использовал тему Yootheme, и в настройках этой конкретной темы есть галочка, при нажатии на которую проблема мгновенно решилась. Вот ссылка на пост на форуме: https://yootheme.com/support/question/4342
Другими словами, это может быть проблема, связанная с темой.

nl2br()
можно использовать для восстановления переносов строк при повторном использовании отфильтрованного HTML

Фильтр wpautop()
изменяет отображение контента, но не влияет на режим просмотра в редакторе содержимого.
Пример:
<?php the_content(); ?>
отображает контент в обычном виде. Если добавить remove_filter('the_content', 'wpautop');
, контент будет отображаться без тегов p
.
В обоих случаях редактор содержимого отображается одинаково
