it-swarm.xyz

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

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

5
tooshel

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

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

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

8
Asbjørn Ulsberg

Я согласен с некоторыми из вышеперечисленных постов в качестве прямых ответов на вопрос (который предполагает дальнейшее использование редактора 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');

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

5
Greg

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

2
Rick Curran

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

1
Travis Northcutt

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

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

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

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

<br />

1
John P Bloch

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

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

0
scribu