Если вы используете WordPress уже длительное время, то наверняка сталкивались с «белым экраном смерти» хотя бы однажды. Причина, по которой этот момент расстраивает пользователя, это то, что невозможно попасть в админку. А в виду того, что при этом текст ошибки не отображается на экране в большинстве случаев, вы остаетесь в неведении, где же закралась проблема. Самое же неприятное — что иногда проблема затрагивает только определенную часть сайта, и вы, к примеру, видите белый экран только в админке, но при этом главная страница отображается и функционирует как обычно. Иногда, такое случается только для какой-то записи, и снова таки, остальное работает нормально. В этой статье мы расскажем как исправить белый экран смерти в WordPress, рассмотрев несколько возможных решений.
Примечание: Прежде чем применять изменения к сайту, убедитесь, что у вас есть свежий бекап.
Почему возникает эта ошибка?
Чаще всего белый экран означает, что вы исчерпали лимит памяти. Это может быть вызвано плагином, который работает, но работает с ошибками; тема написана с ошибками; проблема может быть в вашем хостинге. В виду того, что поблема может быть вызвана несколькими факторами, у нее может быть множество решений.
Проблема касается других ваших сайтов?
Если у вас несколько сайтов, тогда первое, что вы должны сделать, это проверить белый экран смерти возникает на всех них, или только на одном домене. Если же остальные сайты также не в порядке — это указывает на проблемы у хостинг-провайдера. Однако, если неполадки только на одном из ваших сайтов, тогда стоит смотреть в сторону плагина или установленного шаблона. Если же неполадки с определенной записью в блоге или страницей, тогда, определенно, проблема с конкретным сайтом.
Увеличение лимита памяти
Обычно такая проблема случается из-за того, что вы исчерпали лимит памяти.
Я занимался переносом многих сайтов клиентов, и иногда ошибка исчерпания лимита памяти выскакивала при активации нового плагина или при выполнении других задач. Обычно ошибка выглядит так:
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2348617 bytes) in /home4/xxx/public_html/wp-includes/plugin.php on line xxx
Для решения мы открываем свой файл wp-config.php, находящийся в корнвой папке WordPress. Затем добавляем следующий код в основной php тег:
define('WP_MEMORY_LIMIT', '64M');
Мы только что увеличили лимит памяти до 64Мб. Если ошибка не исчезла, тогда свяжитесь со своим хостером. Они увеличат лимит в php.ini.
Отключение всех плагинов
Если увеличение памяти не помогло, или у вас выставлен высокий лимит типа 256Mб или 512Mб, тогда вам стоит начать пошаговый поиск неисправностей. По моему опыту решения подобных проблем, обычно дело в плагине или шаблоне. Идем дальше и отключаем плагины. Можно сделать это по инструкции: как отключить все плагины, если нет доступа к админке
Если этот способ помог, тогда включайте плагины по-одному.
Замена шаблона на стандартный шаблон WordPress
Если способ с плагинами не помог, тогда стоит попробовать изменить свой текущий шаблон на тот, который поставляется вместе с движком. Лучший способ сделать это: забекапить текущую папку с темой, затем удалить ее и ВП автоматически переключится на тему по-умолчанию.
В качестве альтернативы можно зайти в phpMyAdmin и обновить wp_options таблицу Базы Данных. Обновить нужно следующие строки в таблице:
template, stylesheet, и current_theme. Измените значение на twentyeleven.
Если проблема с белым экраном решилась, тогда вам необходимо смотреть в сторону файла functions.php вашей темы. Если найдете пустые строки в конце файла, необходимо их вытереть.
Другие варианты
Если ни один из вышеописанных не помог — значит необходимо попробовать переустановить движок WordPress. Иногда это не совсем очевидно, но файлы ядра могут оказаться поврежденными.
Также можно использовать функцию отладки в WordPress, чтобы посмотреть какой тип ошибок выводится на экран. Добавьте следующий код в файл wp-config.php.
error_reporting(E_ALL); ini_set('display_errors', 1); define( 'WP_DEBUG', true);
После того, как вы проделали это, пустой экран будет отображать ошибки, предупреждения и уведомления. Это сможет помочь определить откуда у ошибки растут ноги 🙂
Иногда у вас может быть доступ к админ.части, однако сам сайт выглядит как пустое белое полотно. Это может быть вызвано плагином кеширования. Просто очистите кеш.
Если белый экран отображается на очень длинных записях, тогда вам также стоит попробовать очистить кеш.
Также можете попробовать следующее: либо добавить следующий код в wp-config.php, в некоторых случаях — в файл PHP.INI вашего веб-сервера.
/** Решение для больших постов */ ini_set('pcre.recursion_limit',20000000); ini_set('pcre.backtrack_limit',10000000);
Понятно, что все эти ошибки очень мерзкие, поэтому надеемся, что хотя бы один из способов помог вам решить проблему, с которой вы пришли на наш блог. Если же у вас есть другие способы решения, милости просим в комментарии.