Ошибка Warning: Illegal string offset ‘solo_subscribe’ при переезде на php 5.4

Ошибка Warning: Illegal string offset 'solo_subscribe' при переезде на php 5.4Недавно Фоззи прислал предупреждение, что хостинг переезжает с php 5.3.x на php 5.4.x, и что если есть желание — можно переключиться обратно на 5.3 или вообще на 5.5. Ну переезжает, и переезжает, я внимания не обратил. А зря. Как выяснилось, php версии 5.4 выдает ошибку, вернее — предупреждение: Warning: Illegal string offset ‘solo_subscribe’ (ну и дальше место, где именно она произошла), которая означает, что если где-то вместо массива подсовывается строка, то ему, видите-ли, это не нравится. На всех остальных версиях php этого не происходит, а вот 5.4 — таких штук не любит. Из предупреждения было понятно, что происходит это из-за плагина Subscribe To Comments, не обновлявшегося уже около полутора лет. Исходя из этого, вырисовывается четыре способа решения этой проблемы:

  1. Исправить код плагина. К сожалению, поскольку проблема эта обозначилась уже давно, а создатель плагина до сих пор ею не озаботился, то и ожидать того, что он ее пофиксит —  как-то не приходится. Сам же я в php программировании не понимаю вообще ничего, и откровенно говоря — времени на то, чтобы разобраться, уйдет больше, чем на какой-либо другой способ решения (а что редактировать там — не очень понятно, это не просто строчку переписать). В интернете же способа правки кода именно для этого плагина не существует, обыскал практически все ресурсы.
  2. Переключить версию php обратно на 5.3, или наоборот вверх — до 5.5. Неплохой вариант, однако смущает то, что я не знаю, к чему это приведет с точки зрения других плагинов, к тому же режим 5.4 выводится, как native, а остальные — не понятно, как применяются на хостинге.
  3. Отключить вывод предупреждений: в wp-config у Вордпресса, или прописыванием в .htaccess (как вариант — можно оставить вывод в файл лога) — мне не по нраву, поскольку предпочитаю всегда лечить болезнь, а не скрывать симптомы
  4. Поменять плагин. Кардинально, но работает только в случае, если есть другой аналогичный. Плюсы в том, что затрагивается конкретно не работающее место. Минусы — в том, что не понятно, как он вообще будет работать.

В общем, все четыре способа — не самые оптимальные. Первый и третий — не подходят абсолютно, второй — страшновато из-за остального сайта, так что остается только 4-й, поскольку для указанного плагина есть доработанная версия Subscribe To Comments Reloaded. Поэтому в ближайшее время состоится переезд. Разумеется — бэкап базы данных будет сохранен, и в случае, если что-то не заработает, или пропадут ваши подписки — я все верну обратно, но возможно, день-два что-нибудь будет работать не совсем корректно. P.S. Вот тут подсказал Flector, как пофиксить это, не переезжая на Релоадед версию: откройте файл плагина и замените строчку 304:

на

ошибка при этом пропадет, но все будет нормально работать. если где-то еще такая ошибка появится, то надо is_array будет заменить на isset. Спасибо — все проверил — все работает.

Category: Сайт  Tags: , , ,
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
Один комментарий
  1. Спасибо, работает, помогло!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Subscribe without commenting

QR Code Business Card