Нет фильтра кода при переключении с HTML на визуальный редактор, как?

9

Да, я нашел другие вопросы к этой теме, но нет точно такой же темы и нет решения моей проблемы.

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

мой пример в html-tab введите описание изображения здесь

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

Мои тесты для решения. у меня есть тест, чтобы остановить WP для этого с последующим плагином теста, также читаемым в этом Gist 1663554

add_filter( 'tiny_mce_before_init', 'fb_tinymce', 9 );

function fb_tinymce( $init ) {

    $init['fix_list_elements'] = FALSE;
    $init['wpautop'] = FALSE;
    $init['remove_linebreaks'] = FALSE;
    $init['apply_source_formatting'] = TRUE;
    $init['extended_valid_elements'] .= ',pre[*],code[*]';

    return $init;
}

Возможно, у другого читателя есть решение по этой теме.

bueltge
источник
Я правильно понял? Вы хотите остановить редактор, чтобы удалить разрывы строк внутри кода?
Кайзер
да, если вы включите код в html-редактор и переключитесь в визуальный режим, WP удалит все разрывы, абзац. Это работает с editor.js, и я не люблю фильтр для этого; возможно, это жестко запрограммировано, и моя единственная цель - заменить этот js; но это не очень хорошо; Я отключу эту функцию.
Bueltge

Ответы:

3

Да, это полная боль. 99% обучающих программ «disable wpautop» полностью пропускают событие переключения вкладок. В любом случае, вы должны попробовать мой плагин - http://wordpress.org/extend/plugins/preserved-html-editor-markup/

Он не только защитит вашу разметку от искажения wpautop, но и сохранит разрывы строк и отступы, но при этом позволит вам использовать как редактор HTML, так и визуальный редактор.

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

Маркус папа
источник
Скоро будет выпущена версия 1.5, которая также будет включать поддержку реальных блоков скриптов. А версия 1.4 (текущая стабильная) допускает условное включение тегов p или br, поэтому вы можете использовать любой из них по своему усмотрению.
Маркус Папа
Реализовали ли вы функции для моего вопроса с помощью JS или PHP, через Filter? Я ищу только функции, чтобы код внутри preили codeбыл неизменен от tinyMCE. Я не буду решение, есть фильтр после the_content, пока больше производительности. Спасибо!
Бюлтге
@bueltge - я не совсем понял вопрос. Мой плагин многое делает для решения этой проблемы, поэтому я не могу кратко описать конкретные фильтры, которые я использовал. Вы можете посмотреть исходный код моего плагина, чтобы узнать, как я это сделал.
Маркус Папа
Да, я могу прочитать в вашем источнике; но, возможно, будет проще, если вы дадите мне записку о решении только моей проблемы. Ваш плагин исправит множество тем в этой области.
Бюлтге
0

Я думаю, что самое простое решение для того, что вы описываете, это плагин, такой как: http://wordpress.org/extend/plugins/wp-no-format/

Тем не менее, вы также можете посмотреть на плагины подсветки синтаксиса ... есть даже один для встраивания гистологов по id.

jb510
источник
Я думаю, это не решение проблемы, только этот плагин-фильтр the_content. Этот хук доступен только для внешнего интерфейса, а не внутри редактора.
Bueltge
Сожалею. Это верно, это не мешает переключателю визуального редактора переформатировать код ... Прошло много времени с того момента, как id фактически использовал его, и теперь, глядя на старый сайт, я использовал его вместе с Disable Visual Editor.
jb510
0

Используйте плагин Scripts n Styles. http://wordpress.org/extend/plugins/scripts-n-styles/ Он был изобретен для того, чтобы «прыгать через обручи» и избегать ошибок wpautop, в частности ошибок переключения вкладок.

Вы должны ввести [sns_shortcode name = "{name}"] в редакторе, а свой контент - на вкладке Shortcodes. Его синтаксис выделен, и я усердно работал, чтобы хорошо его кодировать.

WraithKenny
источник