Как вставить блок с кодом в редактор WordPress

4 ноября, 2008
wp code autoescape

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

В принципе, вставить код не сложно. Обычно я размещаю его внутри тегов <pre> с атрибутом lang (это необходимо для работы плагина Dean's Code Highlighter, который занимается подсветкой).

Основная проблема заключается в том, что вы должны вручную заменить символы < и > на &lt; и &gt;. Иначе возникает неоднозначность.

Например, вы пишите привет. WordPress считает, что вы хотите выделить слово «привет» жирным шрифтом и отправляет страницу браузеру именно в таком виде. Но что если вы хотели показать пример html разметки?

В этом случае нужно заменить спецсимволы html на их эскейп последовательности.

Естественно, возиться вручную не стоит :-) , лучше использовать текстовый редактор вроде Notepad++.

Но при этом остаются нерешенными ещё несколько проблем.

Во-первых, редактор WordPress часто сам выполняет корректировку текста. Например, вставляет смайлики вместо заданных последовательностей символов. В блоках кода эту функцию очень желательно отключить.

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

Довольно долго я мирился с этой ситуацией, но на днях случайно натолкнулся на плагин Code Autoescape.

Как следует из названия, он ищет блоки кода и заменяет в них символы <, > и & на соответствующие эскейп последовательности.

При этом блоком кода считается любой блок, заключенный в теги <code> </code>.

Установка плагина очень простая.

Загружаете в папку wp-content/plugins и активируете.

Предварительно нужно будет изменить расширение у файла плагина (с txt на php).

Кстати, есть одна особенность. Если вы хотите вставить блок кода из нескольких строк в текст поста, то вам нужно будет его дополнительно заключить в теги <pre>. Но в комментариях плагин вставит эти теги автоматически.

Обратите внимание. Можно значительно упростить комментирование с помощью плагина LMB^Box Comment Quicktags. Он добавляет панель с кнопками для быстрой вставки тегов над полем с комментарием.

Надеюсь, этот плагин сделает вашу работу комфортнее :-)

Понравилась статья? Подписывайтесь на продолжение rss link !

Или на мой твиттер twitter link

]]>

Добавьте эту страницу в google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

]]>

Опубликовано в HTML, WordPress View Comments

]]>
  • Не зря побаиваетесь, если пост содержит большие фрагменты кода (200+ строк) Dean's Code Highlighter начинает глючить и текст вообще не выводится.

    Спасибо, за замечание, я исправил. Это, кстати, еще одно побочное действие экспериментов с плагинами :)
  • Что же, мною даная тема тоже поднималась, правда я не юзаю плагинов для сей работы, всё руками.
    Дело в том, что иногда уже выростает такая куча плагинов, что порою побаиваюсь, что они завалят блог.
    Тема касательно создания html-кодов руками здесь: http://platinumen.ru/?p=258
    ...кому станет полезной, пользуйтесь...

    ЗЫ: Не в обиду автору статьи, но немного криво описаны в начале коды. Вот тут к примеру: ...символы на . ...
  • 2.7.1 кактусовая.
    способ с постепенным отключением надо попробовать
  • Я ставлю WP с оф. сайта (английскую версию) и сам добавляю плагины. Поэтому кроме постепенно отключения вариантов у вас в общем-то и нет.
    Хотя может возникнуть еще одна проблема. wp-syntax работает на основе библиотеки GeShi и если у вас большие фрагменты кода (сотни строк) она может глючить. При этом вы видите только заголовок поста, а текста нет. Но плагин в любом случае устанавливается.
  • wp-syntax не встает на мой Wordpress. Вообще заметил, что часть популярных плагинов не работает.
    В чем может быть дело ума не приложу.....
  • А какая версия WP и сборка?
    Кроме того проблема может возникнуть из-за других плагинов. Попробуйте все отключить, кроме wp-syntax, а затем по одному включать.
  • Не плохо, спасибо, все таки нашёл ещё парочку уезвимостей, но об этом попозже отпишу)
  • всё очень полезно, но порты у меня отображаются не верно. в чём может быть дело?
  • Посмотрите сейчас. Вроде все исправил :-)
    Дело было в плагинах.
  • Я добавил к своему посту пару комментариев. Угловые скобки во втором не экранировал. На удивление, все работает :)
  • Что-то не получается у меня с этими плагинами. И с тем и с другим часть постов отображается не правильно :-( . Раньше такой глюк был, но все решилось после апгрейда плагина. Сейчас пробовал новые версии обоих плагинов и обе дают сбои, и из-за них часть постов попросту не отображается. Похоже, нужно переходить на подсветку с помощью JS.
  • Сдается мне, Вы не умеете их готовить :)
    Я пользуюсь wp-syntax и ничего руками не экранирую. Правда, есть один момент - дело в ролях пользователей. Я об этом писал: http://www.all-x.net/2008/08/01/plagin-wp-synta...
  • Похоже, вы правы :-)
    Я действительно не знал о WP-Syntax. Нужно будет попробовать. Сейчас я использую Dean's Code Highlighter. Тоже работает на основе GeSHi и использует туже самую разметку, но есть проблемы с копированием кода.
    Насколько я понял wp-syntax проблему с кодом в комментариях не решает?
blog comments powered by Disqus ]]>