Остановить редактор от удаления тегов <p> и замены их на nbsp

26 июл. 2012 г., 21:04:30
Просмотры: 21.1K
Голосов: 6

Когда я ввожу контент в редакторе WYSIWYG для записей/страниц, я не получаю <p> при завершении параграфов, только &nbsp. Если я вручную размещаю <p></p> в режиме HTML, они удаляются, как только я переключаюсь в 'визуальный' режим. Это повторяется на нескольких сайтах (я думал, что это связано с темой, но нет).

Я прочитал десятки тем и ответов, но ни один не решает мою проблему. Я пробовал add/remove wpautop в моем файле functions.php, но ничего не помогает.

Я не хочу использовать плагин tinymce.

0
Все ответы на вопрос 3
1

Я провел расширенное исследование и нашел ответ — теперь я использую хук 'tiny_mce_before_init'.

На основе других ответов (особая благодарность ответу #2 @Chip Bennett), я использовал следующий код в своем functions.php для сохранения разрывов абзацев (в HTML-режиме редактора они отображаются как &nbsp, но превращаются в абзацы на фронтенде):

function tinymce_config_59772( $init ) {
   // Не удалять разрывы строк
   $init['remove_linebreaks'] = false; 
   // Преобразовывать символы новой строки в теги BR
   $init['convert_newlines_to_brs'] = true; 
   // Не удалять избыточные теги BR
   $init['remove_redundant_brs'] = false;

   // Возвращаем $init обратно в WordPress
   return $init;
}
add_filter('tiny_mce_before_init', 'tinymce_config_59772');

На сайте tinyMCE вы можете найти различные возможные конфигурации.

14 авг. 2012 г. 14:19:14
Комментарии

Название функции не должно начинаться с цифр. Это вызывает ошибку.

ewroman ewroman
21 апр. 2014 г. 22:31:35
7

также можно сказать, что TinyMCE интегрирован с WordPress, и HTML-редактор удаляет некоторые символы, заменяя их на &nbsp;... изначально это было сделано для безопасности и из убеждения, что нам больше не нужны теги <br> или <p>

27 июл. 2012 г. 00:01:41
Комментарии

ох, как же они ошибались... лол

Androliyah Androliyah
27 июл. 2012 г. 00:18:10

@Aliyah Не думаю, что они вернут его обратно. Так уже было годами. Честно говоря... Я даже не знал, что CKEditor был адаптирован для WordPress, и, полагаю, он бесплатный?

Damien Damien
27 июл. 2012 г. 00:46:46

Да, он есть в директории плагинов WP по ссылке, которую я дал

Androliyah Androliyah
27 июл. 2012 г. 00:49:31

Подожди секунду, лол... это твой ответ?

Androliyah Androliyah
27 июл. 2012 г. 00:59:14

@Damien - хорошее объяснение, есть решения?

Nona Man Nona Man
27 июл. 2012 г. 12:28:40

Возможно, этот плагин для редактора будет решением, так как твоя проблема исходит от WYSIWYG :)

Androliyah Androliyah
27 июл. 2012 г. 21:48:24

Такое же качество ответов, как и на форуме WP... закатываю глаза

BAR BAR
6 нояб. 2014 г. 16:45:16
Показать остальные 2 комментариев
4

Вы можете попробовать CKEditor

Wordpress CKEditor

26 июл. 2012 г. 22:03:00
Комментарии

@aliyah- разве нет какого-то кода, который мы можем использовать? Мне не нравится использовать плагины, потому что никогда не знаешь, как они повлияют на другие вещи.

Nona Man Nona Man
27 июл. 2012 г. 12:28:50

@NonaMan Не каждый плагин оказывает негативное влияние на сайт. Попробуйте и посмотрите, решит ли он вашу проблему. Это просто улучшенный плагин WYSIWYG редактора. Он может решить вашу проблему, а может и нет, но попробовать не помешает. Вы всегда можете его отключить. Я использую его сейчас, и сайт работает гладко. Он не вносит серьёзных изменений.

Androliyah Androliyah
27 июл. 2012 г. 21:47:16

Это работает и даёт редактору возможность сохранять теги абзацев. Спасибо! Я всё же надеюсь, что кто-нибудь напишет функцию, которая подключается к редактору и заменяет 'nbsp' на теги абзацев.

Nona Man Nona Man
31 июл. 2012 г. 07:48:32

@NonaMan Я тоже лол

Androliyah Androliyah
2 авг. 2012 г. 01:05:56