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

Владимир | | HTML, WordPress.

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. Он добавляет панель с кнопками для быстрой вставки тегов над полем с комментарием.

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

  • Сдается мне, Вы не умеете их готовить 🙂
    Я пользуюсь wp-syntax и ничего руками не экранирую. Правда, есть один момент — дело в ролях пользователей. Я об этом писал: http://www.all-x.net/2008/08/01/plagin-wp-syntax-i-roli-polzovatelej/

    • Похоже, вы правы 🙂
      Я действительно не знал о WP-Syntax. Нужно будет попробовать. Сейчас я использую Dean's Code Highlighter. Тоже работает на основе GeSHi и использует туже самую разметку, но есть проблемы с копированием кода.
      Насколько я понял wp-syntax проблему с кодом в комментариях не решает?

  • Сдается мне, Вы не умеете их готовить 🙂
    Я пользуюсь wp-syntax и ничего руками не экранирую. Правда, есть один момент — дело в ролях пользователей. Я об этом писал: http://www.all-x.net/2008/08/01/plagin-wp-syntax-i-roli-polzovatelej/

    • Похоже, вы правы 🙂
      Я действительно не знал о WP-Syntax. Нужно будет попробовать. Сейчас я использую Dean's Code Highlighter. Тоже работает на основе GeSHi и использует туже самую разметку, но есть проблемы с копированием кода.
      Насколько я понял wp-syntax проблему с кодом в комментариях не решает?

  • Я добавил к своему посту пару комментариев. Угловые скобки во втором не экранировал. На удивление, все работает 🙂

    • Что-то не получается у меня с этими плагинами. И с тем и с другим часть постов отображается не правильно 🙁 . Раньше такой глюк был, но все решилось после апгрейда плагина. Сейчас пробовал новые версии обоих плагинов и обе дают сбои, и из-за них часть постов попросту не отображается. Похоже, нужно переходить на подсветку с помощью JS.

  • Я добавил к своему посту пару комментариев. Угловые скобки во втором не экранировал. На удивление, все работает 🙂

    • Что-то не получается у меня с этими плагинами. И с тем и с другим часть постов отображается не правильно 🙁 . Раньше такой глюк был, но все решилось после апгрейда плагина. Сейчас пробовал новые версии обоих плагинов и обе дают сбои, и из-за них часть постов попросту не отображается. Похоже, нужно переходить на подсветку с помощью JS.

  • всё очень полезно, но порты у меня отображаются не верно. в чём может быть дело?

    • Посмотрите сейчас. Вроде все исправил 🙂
      Дело было в плагинах.

  • всё очень полезно, но порты у меня отображаются не верно. в чём может быть дело?

    • Посмотрите сейчас. Вроде все исправил 🙂
      Дело было в плагинах.

  • Не плохо, спасибо, все таки нашёл ещё парочку уезвимостей, но об этом попозже отпишу)

  • Не плохо, спасибо, все таки нашёл ещё парочку уезвимостей, но об этом попозже отпишу)

  • wp-syntax не встает на мой WordPress. Вообще заметил, что часть популярных плагинов не работает.
    В чем может быть дело ума не приложу…..

    • А какая версия WP и сборка?
      Кроме того проблема может возникнуть из-за других плагинов. Попробуйте все отключить, кроме wp-syntax, а затем по одному включать.

  • wp-syntax не встает на мой WordPress. Вообще заметил, что часть популярных плагинов не работает.
    В чем может быть дело ума не приложу…..

    • А какая версия WP и сборка?
      Кроме того проблема может возникнуть из-за других плагинов. Попробуйте все отключить, кроме wp-syntax, а затем по одному включать.

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

    • Я ставлю WP с оф. сайта (английскую версию) и сам добавляю плагины. Поэтому кроме постепенно отключения вариантов у вас в общем-то и нет.
      Хотя может возникнуть еще одна проблема. wp-syntax работает на основе библиотеки GeShi и если у вас большие фрагменты кода (сотни строк) она может глючить. При этом вы видите только заголовок поста, а текста нет. Но плагин в любом случае устанавливается.

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

    • Я ставлю WP с оф. сайта (английскую версию) и сам добавляю плагины. Поэтому кроме постепенно отключения вариантов у вас в общем-то и нет.
      Хотя может возникнуть еще одна проблема. wp-syntax работает на основе библиотеки GeShi и если у вас большие фрагменты кода (сотни строк) она может глючить. При этом вы видите только заголовок поста, а текста нет. Но плагин в любом случае устанавливается.

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

    ЗЫ: Не в обиду автору статьи, но немного криво описаны в начале коды. Вот тут к примеру: …символы на . …

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

    ЗЫ: Не в обиду автору статьи, но немного криво описаны в начале коды. Вот тут к примеру: …символы на . …

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

    Спасибо, за замечание, я исправил. Это, кстати, еще одно побочное действие экспериментов с плагинами 🙂

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

    Спасибо, за замечание, я исправил. Это, кстати, еще одно побочное действие экспериментов с плагинами 🙂

  • Спасибо за плогин поставил к себе на блог.

  • Спасибо за плогин поставил к себе на блог.