Два дня назад (23 апреля) WordPress выпустили 4.2 версию своей CMS, названную «Powell». Но сегодня я хочу рассказать не о новых функциях и новшествах, которыми пополнилась новая версия платформы, а о проблеме, связанной с появлением белого экрана «смерти» сразу же после обновления до версии 4.2. И, конечно же, о ее решении.

Как узнать, в чем проблема?

Если Вы, к сожалению, столкнулись с этой проблемой, собственно как и я — не стоит паниковать/писать в тех. поддержку вашего хостинга/переустанавливать CMS/делать downgrade и т.д. Виноватых здесь нет, и это Вам не поможет.
Первым делом Вы должны узнать, какая ошибка возникает при попытке доступа к сайту. Есть несколько способов это сделать, но наиболее продуктивным является изменение в файле "/wp-config.php" значения «false» на «true» в строчке:

define('WP_DEBUG', false);

После этого, при попытке доступа к сайту, Вы увидите код ошибки. С этим описанием ошибки Вы сможете обратиться к разработчику Вашей темы, а также поискать информацию на форуме WordPress. Также для доступа в админ панель WordPress Вы можете дописать к названию папки подключенной темы ".HOLD" (т.е. если папка с Вашей темой называется «theme», то нужно переименовать ее в «theme.HOLD»).

Но все не так просто. Во-первых, не все пользуются темами известных разработчиков, а, следовательно, не сразу смогут получить информацию по решению своей проблемы. На themeforest вообще произошел большой «бум» по обращению в support'ы разработчиков wp-тем с разными описаниями ошибок после обновления до 4.2. Во-вторых, многим нужно, чтобы сайт продолжал функционировать, а разработчики просят подождать и набраться терпения до появления обновленной версии темы с решением проблем и полностью совместимых с WP 4.2.

Хорошие новости

Наиболее часто встречающаяся проблема (если Вы столкнулись с белым экраном, скорее всего, у Вас именно такая проблема), это ошибка типа:

PHP Fatal error: Cannot redeclare get_avatar_url() (previously declared in /home/adminname/public_html/wp-includes/link-template.php:3414) in /home/adminname/public_html/wp-content/themes/themename/functions/functions.php on line 155
и решение этой проблемы есть.

Для функционирования сайта достаточно закомментировать функцию в файле "/functions.php" c названием «get_avatar_url». После этого сайт начнет функционировать, все будет работать, кроме аватаров и сервиса Gravatar. Лично меня такое решение не устроило и ждать обновления темы, связанное только с решением этой проблемы, я не хотел. Поэтому было решено разобраться в сути проблемы и устранить ее своими силами.

Решение проблемы

Решение, к счастью, оказалось очень простым и особого редактирования кода файлов не требует.
  • Сделайте резервную копию сайта (нужно скачать его на компьютер)
  • Выполните поиск по файлам в папке установленной темы с совпадением по «get_avatar_url».
    Результат будет выглядеть примерно следующим образом: image
  • Подключитесь через FTP-client к сайту, и в найденных php-файлах переименуйте везде, где используется «get_avatar_url()», имя функции. Например, я поменял «get_avatar_url» на «get_avatarius_url»

После этого можете подключаться к сайту, и все будет работать (как и раньше). При этом тема будет совместима с WordPress 4.2.

Заключение

Хотелось бы отметить, что в новой WP появились новые интересные функции, и не стоит бояться обновляться. Если же Вы не хотите никакой мороки, то следует подождать обновленной версии Вашей темы, установить ее, а затем уже ставить WordPress 4.2 «Powell». Всем удачной работы с сайтами!

Комментарии ()