Intereting Posts
Как скрыть <h2>, если появляется <h1> Отображать только одно оповещение Разрешить автору загружать изображение с помощью кнопки Media без плагина Использование данных, отправленных через AJAX в нескольких функциях в WP плагине Скрыть редактор контента для сообщений после даты подачи заявки Как регистрировать действия плагина (cron)? Изменение wp-содержимого без изменения имени папки Multisite на localhost с помощью xampp Сохранение данных FTP в wp-config.php Частный блог WordPress, требует подтверждения регистрации пользователя и позволяет пользователям входить в систему с OpenID С плагином Yoast SEO, можно ли сделать мета-описание обязательным полем формы? Почему этот массив не работает? Помощь, необходимая для создания моего сайта как агрегатора Настройка языка RSS-канала Будут ли простейшие имена функций в структуре классов конфликтовать с другими плагинами?

tinyMCE дублирует предыдущий элемент блока при нажатии return (визуальный редактор)

С ума сходить с этим. Не могу понять, нормальное поведение.

Я добавил фильтр, чтобы переписать вставки изображений, чтобы использовать <figure> и <figcaption> . Работает хорошо.

Однако, когда я вставляю изображение в визуальный вид и нажимаю return, я хочу, чтобы он начал новый абзац.

Вместо этого он создает другой элемент <figure> и помещает в него следующую строку текста.

Пример кода, созданного при переключении в текстовый вид:

 <figure class="alignnone"> <a href="path/to/image.jpg"><img class="alignnone size- wp-image-209" src="path/to/image.jpg" width="199" height="43" /></a> <figcaption>Image Caption</figcaption> </figure> <figure class="alignnone"`>This should be a new paragraph but is inside a figure tag.</figure> 

Есть ли способ остановить tinyMCE от репликации предыдущего элемента блока? Я знаю, если вы установите какой-либо текст как, скажем, <h2> и нажмите, чтобы вернуться к следующей строке по умолчанию, чтобы вернуться к <p> . Это поведение, которое я хочу.

В настоящее время у меня такая же проблема. Вот моя работа.

 add_filter( 'tiny_mce_before_init', 'workaround' ); public function workaround( $in ) { $in['force_br_newlines'] = true; $in['force_p_newlines'] = false; $in['forced_root_block'] = ''; return $in; } 

tiny_mce_before_init дает вам доступ к настройкам TinyMCE, которые использует редактор WordPress. См. Также: TinyMCEConfiguration

Недостатком этого является вместо «return», в результате чего p вместо этого дает вам команду br . Я попытался изменить оси force_br_newlines и force_p_newlines, но это приводит к исходной проблеме. Надеюсь, это поможет.

У меня была такая же проблема, но не в WordPress. Во всяком случае, я заставляю блок «p» брать контент между тегами «p». И из-за этого, когда я нажимаю кнопку возврата и сохраняю содержимое в БД, TinyMce дублирует теги «p». Более того, он дублирует теги все время, когда я его снова сохраняю. Мое решение находится в init:

 force_br_newlines: true, force_p_newlines: false, forced_root_block: 'p', invalid_elements: 'p', 

Наиболее важным является invalid_elements. Здесь вы должны указать тег 'p'. После этого параметра мой код больше не дублирует тег 'p'. Надеюсь, ваш будет делать то же самое.

Вот еще одна версия решения. Я должен написать новую, потому что предыдущая версия в порядке, но она не работает со всеми другими настройками. Это решение останавливает дублирование p тэгов после новых строк и заголовков, но помещает один простой тег br между абзацами.

 forced_root_block: 'p', force_p_newlines: false, force_br_newlines: false, extended_valid_elements: '-p', 

Я использую extended_valid_elements, потому что не хочу переопределять значение по умолчанию, всего одно значение valid_elements. Значение -p и другие настройки приведены здесь .

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