Плагины WordPress или как сделать чтобы блог перестал работать :)

Владимир | | Web разработка, WordPress.

wordpress plugins bugs

Сколько раз говорю себе: не экспериментировать с рабочей версией блога. Но, как обычно, хочется сделать все побыстрее, а в результате получается черте как.

И вот, на днях искал я плагины для подсветки кода, даже несколько постов на эту тему написал (этот и этот).

Парочка найденных плагинов меня заинтересовала и я решил попробовать их установить.

Отзывы о них были очень хорошие, и я решил, что ничего страшного не произойдет, если я сразу установлю их на сервере.

К тому же недавно я игрался с локальной версией блога, и ее нужно было заново устанавливать и настраивать 🙂 .

Активирую первый (Code Autoescape) плагин, проверяю, вроде все нормально, работает правильно.

Для справки. Этот плагин заменяет спецсимволы html, которые находятся внутри тегов code, на их эскейп последовательности. Другими словами, превращает < в &lt; .

Больше всего в этом плагине мне понравилось то, что он работает с комментариями.

Написал очередной пост уже с использованием этого плагина, продолжаю эксперименты.

Теперь я решил заменить плагин подсветки синтаксиса. В принципе, в Dean's Code Highlighter меня все устраивало, кроме нумерации строк. Точнее мне не нравилось, что номера копируются вместе с кодом. Проблема не большая, т.к. я всегда выкладываю архивы с примерами (если, конечно, они состоят не из пары строк).

Тем не менее, мне хотелось исправить ситуацию. А из этой статьи я узнал о плагине — WP-Syntax.

Фокус в том, что и Dean's Code Highlighter, и WP-Syntax используют одну и туже библиотеку подсветки синтаксиса — GeSHi. И, судя по описанию, являются взаимозаменяемыми.

Отключаю Dean's Code Highlighter, активирую WP-Syntax, вроде все нормально. Я обрадовался и вместо того, чтобы внимательно все проверить решил заняться более интересными вещами 🙂 .

Естественно, на следующий день практически все комментарии касались работы блога 🙂 . Денис даже скриншот сделал, за что ему отдельное спасибо.

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

Итак, основных проблем было три.

1) Если вставить вставить тег pre между тегами code, то Code Autoescape не экранирует его и разметка превращается непонятно во что.

2) Несмотря на то, что и Dean's Code Highlighter, и WP-Syntax используют GeSHi, работают они по-разному. WP-Syntax экранирует символы <, > и &, а Dean's Code Highlighter – нет. В старых постах я вставлял код с уже экранированными символами. В результате получилось, что WP-Syntax заменил в них & на &amp; и все символы <, > превратились в &lt;, &gt;.

3) К тому же у этих плагинов есть одна очень не приятная особенность. Они получают полный текст поста и возвращают его же, но уже с подсветкой. При этом, если во время их работы происходит ошибка, то возвращается пустая строка. На практике это вылилось в то, что некоторые посты у меня состояли из названия и комментариев 🙂 .

В конечном итоге я вернул Dean's Code Highlighter, правда в немного измененном виде. Отключил вставку ссылок на документацию по ключевым словам. Все равно эти ссылки вставлялись только для самых распространенных функций (вроде array, echo, …) и вряд ли кто-то ими пользовался.

В общем, менять плагины для подсветки кода в ближайшее время я не буду 🙂

И нужно распечатать и приклеить на монитор напоминание «Никаких экспрериментов с рабочим сервером!» 🙂 ).

  • Delchyve

    Ничего )
    У меня вот, как думается уже замечено, WP вообще пал смертью храбрых. И все бы ничего, если бы по прошествию некоторого времени, когда попытки все восстановить были оставлены, эта дрянь возьми да и заработай. Причем работает исключительно на default теме. Вот и пойми его после этого. Я не шовинист, но, простите, это женщина, а не движок )))

    • Я заметил, но думал, что ты его обновляешь.
      А вообще были какие-нибудь ошибки? Ведь раньше блог нормально работал и не на дефолтной теме.
      Из-за чего вообще сбой произошел?

      • Delchyve

        В том-то все и дело, что никаких и ошибок не было. Сначало он начал слишком долго загружаться. Грешил на хостера. Но в один прекрасный момент блог отказал. Причем как-то странно — админка работает, а внешняя часть нет.

        Ну да ладно. У меня цель — до конца ноября запустить блог. Если получиться, то на CI, если нет — просто переставлю ВП. А то как-то ломает уже, писать хочется ))

        • Честно говоря, я бы сразу переустановил WP.
          Собственные разработки часто затягиваются.

        • Delchyve

          Ну мы ж легких путей не ищем 🙂

          Кроме того, что я получу при переустановки ВП? Те же проблемы. А вот в собственном движке есть возможность получить неизведанные миром баги и как следствие бесценный опыт ))

        • Работающий блог 🙂

  • Delchyve

    Ничего )
    У меня вот, как думается уже замечено, WP вообще пал смертью храбрых. И все бы ничего, если бы по прошествию некоторого времени, когда попытки все восстановить были оставлены, эта дрянь возьми да и заработай. Причем работает исключительно на default теме. Вот и пойми его после этого. Я не шовинист, но, простите, это женщина, а не движок )))

    • Я заметил, но думал, что ты его обновляешь.
      А вообще были какие-нибудь ошибки? Ведь раньше блог нормально работал и не на дефолтной теме.
      Из-за чего вообще сбой произошел?

      • Delchyve

        В том-то все и дело, что никаких и ошибок не было. Сначало он начал слишком долго загружаться. Грешил на хостера. Но в один прекрасный момент блог отказал. Причем как-то странно — админка работает, а внешняя часть нет.

        Ну да ладно. У меня цель — до конца ноября запустить блог. Если получиться, то на CI, если нет — просто переставлю ВП. А то как-то ломает уже, писать хочется ))

        • Честно говоря, я бы сразу переустановил WP.
          Собственные разработки часто затягиваются.

        • Delchyve

          Ну мы ж легких путей не ищем 🙂

          Кроме того, что я получу при переустановки ВП? Те же проблемы. А вот в собственном движке есть возможность получить неизведанные миром баги и как следствие бесценный опыт ))

        • Работающий блог 🙂

  • Стараюсь все для себя писать сам — и универсальнее, и тренировки больше

    • Насчет тренировки, конечно, не поспоришь, но вот универсальность — спорный вопрос.
      Собственный код хорошо подходит «для себя», но использовать его где-то еще без переделки обычно не получается.

      • ну да. неверно выразился.
        имел в виду, что для себя уже пишешь именно то, что нужно, и дописать всегда можно

  • Стараюсь все для себя писать сам — и универсальнее, и тренировки больше

    • Насчет тренировки, конечно, не поспоришь, но вот универсальность — спорный вопрос.
      Собственный код хорошо подходит «для себя», но использовать его где-то еще без переделки обычно не получается.

      • ну да. неверно выразился.
        имел в виду, что для себя уже пишешь именно то, что нужно, и дописать всегда можно

  • У меня тоже так бывает — когда «находит» желание поэкспериментировать)

  • У меня тоже так бывает — когда «находит» желание поэкспериментировать)

  • С плагинами надо быть аккуратнее. Не устанавливать то, в чем не уверен и регулярно делать бэкапы.
    Блог нужно беречь и не захламлять лишними плагинами, а то получится «ёлка». 🙂

    • Интересный момент. Именно из-за того, что у меня регулярно создаются бэкапы я не сильно переживал, что что-то пойдет не так.

  • С плагинами надо быть аккуратнее. Не устанавливать то, в чем не уверен и регулярно делать бэкапы.
    Блог нужно беречь и не захламлять лишними плагинами, а то получится «ёлка». 🙂

    • Интересный момент. Именно из-за того, что у меня регулярно создаются бэкапы я не сильно переживал, что что-то пойдет не так.

  • alex

    Спасибо за информацию! Полезно! сам не люблю эксперименты с рабочим сайтом! недавно установил кривой плагин и сайт перестал работать(
    Хорошо наткнулся на эту статью и быстро все починил http://возьмивсе.рф/chto-delat-esli-perestal-rabotat-sajt-wordpress/ там не написано, но приведенный способ работает и с плагинами