Как я могу улучшить обработку разрыва строки в редакторе WYSIWYG?


Я всегда нахожусь в режиме HTML в редакторе, чтобы попытаться сделать так, чтобы простые вещи, такие как разрывы между абзацами, отображались правильно (используя <p></p>). Это нормально? Есть ли лучший редактор, который я мог бы использовать?

Author: Krzysiek Dróżdż, 2010-08-18

6 answers

Происходит то, что TinyMCE преобразует каждый двойной разрыв строки в источнике HTML в <p></p> и наоборот. Это фактически удалит все <p/>, которые вы вручную вводите в исходный код HTML после сохранения, потому что при отображении содержимого сообщения будут добавлены <p> и </p>.

Автоматическая замена <p> работает только при отображении содержимого сообщения с помощью <?php the_content() ?>, если вы выводите $post->post_content напрямую, оно не будет проходить через те же крючки форматирования и будет выглядеть простым и без разрывы строк или абзацы.

Если вам нужно много тегов <br/> в отображаемой разметке, вам, вероятно, следует найти лучшее решение, основанное на CSS и использовании свойств margin или padding CSS.

 8
Author: Asbjørn Ulsberg, 2010-08-18 20:05:09

Я согласен с некоторыми из приведенных выше сообщений в качестве прямых ответов на вопрос (который предполагает дальнейшее использование редактора WYSIWYG). Но после пробной версии я должен рекомендовать, по крайней мере, пересмотреть и переключиться на редактор HTML.

Предполагая, что ты все еще со мной (ты рассматриваешь это как вариант), есть еще кое-что. "Ах, - скажете вы, - редактор HTML все еще добавляет разрывы строк и вообще морочит мне голову!" Верно, именно поэтому вам нужно удалить фильтр auto-p. Для хорошей меры, так как я переключаюсь чтобы максимально очистить HTML, я достаю текстуризатор, который обрабатывает такие вещи, как фигурные кавычки.

Перейдите в редактор тем. Перейдите в раздел "Функции темы" (functions.php) файл. Добавьте следующее:

remove_filter ('the_content', 'wpautop');
remove_filter('the_content', 'wptexturize');

Но я также добавляю это, если планирую использовать выдержки из сообщений/страниц:

remove_filter ('the_excerpt', 'wpautop');
remove_filter('the_excerpt', 'wptexturize');

Надеюсь, это поможет! И откровенно говоря... Я никогда не пробовал отключать фильтры вместе с визуальным редактором! Может быть, это действительно помогает и в этом отношении!

 6
Author: , 2010-08-24 04:57:08

Я рекомендую TinyMCE Advanced также, я предпочитаю иметь больший контроль над HTML-кодом, который пользователь может редактировать на сайте. Есть опция Stop removing the P and BR tags when saving and show them in the HTML editor, которая сделает свое дело, по умолчанию она не отмечена, поэтому после установки вам нужно зайти в настройки и включить ее. Еще одним преимуществом является возможность показывать/скрывать различные аспекты редактора, чтобы вы могли удалять кнопки, с которыми конечные пользователи могли бы потенциально поиграть, и пытаться быть "творческими" при форматировании контента!A многие нежелательные опции включены по умолчанию, поэтому вам нужно зайти и удалить ненужные опции.

 2
Author: Rick Curran, 2010-08-19 11:50:07

Короче говоря: да. Это нормально.

Нет, лучших редакторов не существует.

Вы можете попробовать TinyMCE Advanced и посмотреть, поможет ли это.

Кроме того, если вы используете backticks (`) на этом сайте, он исчезнет из вашего html:

<br />

 1
Author: John P Bloch, 2010-08-18 20:04:45

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

 1
Author: Travis Northcutt, 2010-08-18 20:27:42

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

Теги, которые являются более семантическими, чем разрывы строк.

 0
Author: scribu, 2010-08-18 20:00:02