Сохранение HTML-форматирования при переключении между визуальным и HTML-редактором

13 мая 2011 г., 06:37:33
Просмотры: 30.7K
Голосов: 13

Я искал решение, которое позволит редактировать HTML-код так, чтобы он оставался неизменным после переключения между визуальным редактором и обратно.

Я пробовал множество вариантов, но безуспешно:

  • плагин wp-no-format
  • плагин Raw HTML
  • ввод всего HTML-кода в одну строку

Если бы я был единственным, кто управляет контентом, я бы просто отключил визуальный редактор. Но поскольку у меня есть несколько контент-менеджеров и страницы, содержащие HTML (например, формы) и контент, который им нужно редактировать, это не вариант.

Буду благодарен за любые предложения.

4
Комментарии

пытаетесь ли вы отобразить код в записи/на странице

xLRDxREVENGEx xLRDxREVENGEx
13 мая 2011 г. 06:49:49

HTML-код чаще всего отображается на странице, да.

evanmcd evanmcd
13 мая 2011 г. 07:05:49

я только что добавил несколько подсветчиков синтаксиса плюс результаты поиска

xLRDxREVENGEx xLRDxREVENGEx
13 мая 2011 г. 07:35:40

Единственное решение, которое я нашел и которое корректно отображает код в HTML и визуальном редакторе — это http://rawhtmlpro.com

Sylvain Rayé Sylvain Rayé
27 мар. 2013 г. 01:40:55
Все ответы на вопрос 6
4

Я точно понимаю, как вы себя чувствуете, и, к сожалению, эта проблема кроется в ядре WordPress, а не в TinyMCE или проблемах совместимости с браузерами. Я написал плагин, который позволяет форматировать HTML-разметку в редакторе HTML, переключаться между ним и визуальной вкладкой без влияния на исходный код, а также вносить изменения в визуальной вкладке, не нарушая исходное форматирование HTML...

http://wordpress.org/extend/plugins/preserved-html-editor-markup/

Он также сохраняет табуляции — только 4 пробела :( — и улучшает совместимость с HTML5.

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

Наслаждайтесь!

13 апр. 2012 г. 01:07:54
Комментарии

Я обновил плагин с несколькими функциями, которые решают проблему отсутствия wpautop. Теперь визуальный редактор можно настроить для вставки тегов p или br или обоих (два последовательных переноса строки создают тег p). Также он поддерживает встроенный javascript и css. В версии 1.5, которая скоро выйдет, будет поддержка блоков кода javascript. Если вы хотите, чтобы ваша разметка выглядела так, как вы её написали, это определённо тот плагин, который стоит использовать. Ничего похожего по качеству я не встречал.

Marcus Pope Marcus Pope
1 сент. 2012 г. 00:51:06

Огромное спасибо, это единственное решение, которое я нашёл, чтобы визуальный редактор (после сохранения) не изменял HTML.

jackJoe jackJoe
22 апр. 2015 г. 14:40:26

Сегодня 2015 год, и у плагина есть обновление

Ooker Ooker
9 сент. 2015 г. 07:37:19

По-прежнему работает отлично!

joseantgv joseantgv
20 февр. 2019 г. 16:34:40
1

Вы можете попробовать эти плагины:

В TinyMCE Advanced есть настройка Прекратить удаление тегов <p> и <br /> при сохранении и показывать их в HTML-редакторе

20 июл. 2011 г. 08:55:14
Комментарии

@evanmcd Сработало ли Прекратите удалять теги <p> и <br />…?

sam sam
2 нояб. 2013 г. 21:50:15
0

Если вам нужно защитить только отдельные участки кода от изменений, вы можете сохранить этот конфиденциальный HTML, встраиваемый контент и т.д. в пользовательские поля.

С помощью этого плагина шорткодов вы можете вставлять содержимое пользовательских полей БЕЗ ОБРАБОТКИ в любую запись, страницу или даже виджет, используя что-то вроде: [include "имя моего пользовательского поля"]. Также можно извлекать общие фрагменты из других записей с помощью [include global="shared_code_menu"].

Это дешёвая альтернатива с ограничениями, но она лёгкая и простая в использовании.

http://pp19dd.com/wordpress-plugin-include-custom-field/

1 нояб. 2011 г. 15:41:01
0

Следующий плагин сработал у меня.

https://wordpress.org/plugins/embedit-pro/

3 нояб. 2015 г. 11:48:01
0

Добавьте это в ваш файл functions.php

function wp_tiny_mce_sanitize_fix( $init )
{
    $init['extended_valid_elements'] = 'div[*], article[*], span[*], p[*]';
    $init['remove_linebreaks'] = false;
    $init['convert_newlines_to_brs'] = true;
    $init['remove_redundant_brs'] = false;
    return $init;
}
add_filter( 'tiny_mce_before_init', 'wp_tiny_mce_sanitize_fix' );
23 апр. 2021 г. 01:56:49
4
-1

Хорошо, давайте перенесём это в ответ. Вам нужно что-то вроде этого:

-Заголовок-
Пример поста

-Содержание-
лалалалалалалалалалала

<div><a href="blah.com">Blah</a></div>

Список подсветчиков синтаксиса:
- SyntaxHighlighter TinyMCE Button
- WP SyntaxHighligter
- RBCODE
- Результаты поиска в WordPress Extend

13 мая 2011 г. 07:22:08
Комментарии

Хм, честно говоря, не совсем понимаю, что вы пытаетесь донести этим ответом. Не могли бы вы объяснить подробнее? Вы понимаете суть проблемы, которую я пытаюсь решить?

evanmcd evanmcd
14 мая 2011 г. 15:48:11

Я спросил, хотите ли вы показать HTML, вы сказали да. Именно это и делает подсветка синтаксиса. Если это не то, что вам нужно, то извините, но я так это понял. Итак, вы пытаетесь использовать пользовательский HTML внутри записи, чтобы изменить её внешний вид?

xLRDxREVENGEx xLRDxREVENGEx
14 мая 2011 г. 18:39:09

Проблема, которую я пытаюсь решить: 1) ввести HTML в режиме HTML. 2) переключиться в режим Дизайна. 3) вернуться обратно в режим HTML. HTML был изменён, хотя я этого не хотел.

evanmcd evanmcd
17 мая 2011 г. 04:28:55

Да, я только что понял, что так происходит. Я никогда не использую не-HTML представление, поэтому не замечал этого. До сих пор пытаюсь разобраться.

xLRDxREVENGEx xLRDxREVENGEx
17 мая 2011 г. 09:21:31