Как автоматически добавлять теги параграфов в Визуальном Редакторе

1 июн. 2012 г., 21:32:51
Просмотры: 38.7K
Голосов: 6

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

Что я могу сделать, чтобы исправить это? Добавление тегов <p> ко всему вручную определенно не подходит для редакторов контента.

0
Все ответы на вопрос 6
7
10

Теги абзацев добавляются при отображении, а не при хранении. Функция wpautop() добавляется как фильтр к the_content.

Вы никогда не увидите эти добавленные теги абзацев ни в визуальном, ни в HTML-редакторах.

1 июн. 2012 г. 21:43:22
Комментарии

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

gravyface gravyface
1 июн. 2012 г. 21:46:39

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

Chip Bennett Chip Bennett
1 июн. 2012 г. 21:49:37

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

gravyface gravyface
1 июн. 2012 г. 21:54:25

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

Chip Bennett Chip Bennett
1 июн. 2012 г. 22:14:20

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

gravyface gravyface
1 июн. 2012 г. 22:37:35

Можете показать живой пример?

Chip Bennett Chip Bennett
1 июн. 2012 г. 22:42:27

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

Sepster Sepster
11 мар. 2013 г. 17:59:42
Показать остальные 2 комментариев
0

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

24 янв. 2013 г. 05:01:00
1

Убедитесь, что используете функцию the_content для вывода содержимого записи, а не что-то вроде get_the_content. Фильтр WordPress wpautop применяется именно к the_content.

21 нояб. 2014 г. 12:18:46
Комментарии

Это не вносит никаких визуальных изменений в редакторе. Прочитайте вопрос еще раз.

cybmeta cybmeta
21 нояб. 2014 г. 12:54:07
0

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

Другими словами, это может быть проблема, связанная с темой.

27 сент. 2017 г. 17:27:47
0

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

24 февр. 2019 г. 22:15:32
3
-3

Фильтр wpautop() изменяет отображение контента, но не влияет на режим просмотра в редакторе содержимого.

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

В обоих случаях редактор содержимого отображается одинаково

4 янв. 2013 г. 19:53:46
Комментарии

Это сказал Chip. В чём смысл этого ответа?

fuxia fuxia
4 янв. 2013 г. 20:04:45

Это должно было быть комментарием, дополнением к объяснению, данному Chip Bennett.

Rafael Marques Rafael Marques
24 янв. 2013 г. 04:52:35

Если это должен был быть "комментарий", то это должен быть комментарий...

Dan Dan
24 янв. 2013 г. 05:08:57