Классика жанра - скачать невесть откуда плагин, установить его на сайт и... Вот, собственно и все - приехали! Сайт не подает признаков жизни. В лучшем случае у Wordpress отвалилась только админка, но чаще всего сайт падает полностью. Что делать? недавно я так "отличился" - решил установить плагин для отслеживания действий пользователей на сайте... Установил! Отделался только потерей админки, тем не менее, проблему нужно было срочно решать, так как сайт корпоративный. Бэкап был, но 2-дневной давности, с тех пор на сайт были внесены изменения, терять их не хотелось.

Что делать, если сайт на Wordpress перестал работать?

Сама по себе установка плагина не может вызвать падение сайта - по сути, на сервер просто скопировались файлы и была создана новая табличка в базе данных (или не была создана - зависит от плагина). Глючный плагин может спокойно лежать и никому не мешать до тех пор, пока его не активируют. При этом происходит обращение к программному коду плагина и если он некорректен, сайт, соответственно, падает.

Чтобы вернуть сайт к жизни, нам нужно деактивировать этот проблемный плагин. Но как это сделать, если нет доступа к админке? Главное - не паниковать. Вся информация о настройках сайта, в т.ч. об активированных плагинах, хранится в базе данных. Если у нас есть доступ к базе данных через PhpMyAdmin или какую-то другую оболочку, мы можем "снять галочку" в самой базе данных.

Где искать?

  1. Находим таблицу wp-options
  2. Ищем в таблице строку, у которой поле option_name содержит 'active_plugins'. Это можно сделать при помощи sql-запроса: select * from `wp-options` where `option_name`='active_plugins'
  3. В поле option_value вы найдете странный на вид текст наподобие такого:

a:20:{i:0;s:43:"all-in-one-seo-pack/all_in_one_seo_pack.php";i:1;s:21:"category/category.php";i:2;s:43:"comfortable-reading/comfortable-reading.php";i:3;s:33:"configure-smtp/configure-smtp.php";i:4;s:36:"contact-form-7/wp-contact-form-7.php";i:5;s:31:"easing-slider/easing-slider.php";i:6;s:41:"easy-contact-forms/easy-contact-forms.php";i:7;s:44:"easy-pricing-tables/pricing-table-plugin.php";i:8;s:19:"jetpack/jetpack.php";i:9;s:45:"limit-login-attempts/limit-login-attempts.php";i:10;s:26:"mtouch-quiz/mtouchquiz.php";i:11;s:27:"my-calendar/my-calendar.php";i:12;s:33:"questionnaire2/questionnaire2.php";i:13;s:27:"redirection/redirection.php";i:14;s:43:"shortcodes-ultimate/shortcodes-ultimate.php";i:16;s:37:"user-role-editor/user-role-editor.php";i:17;s:21:"wp-polls/wp-polls.php";i:18;s:39:"wp-youtube-player/wp-youtube-player.php";i:19;s:31:"yandexmetrika/yandexmetrika.php";i:20;s:21:"zakladka/zakladka.php";}

Скопируйте эту строку в буфер обмена и сохраните куда-нибудь в текстовый документ (не отсюда, а из вашего PhpMyAdmin!) - на всякий случай.

Сохранили? Теперь вам нужно, во-первых, найти в строке упоминание вашего плагина (пусть это будет "redirection",  помечено желтым) и удалить его вместе с параметрами i:__, s:__.

Во-вторых - число в начале строки (помечено зеленым) уменьшить на 1. То есть, после редактирования поле option_value будет выглядеть следующим образом:

a:19:{i:0;s:43:"all-in-one-seo-pack/all_in_one_seo_pack.php";i:1;s:21:"category/category.php";i:2;s:43:"comfortable-reading/comfortable-reading.php";i:3;s:33:"configure-smtp/configure-smtp.php";i:4;s:36:"contact-form-7/wp-contact-form-7.php";i:5;s:31:"easing-slider/easing-slider.php";i:6;s:41:"easy-contact-forms/easy-contact-forms.php";i:7;s:44:"easy-pricing-tables/pricing-table-plugin.php";i:8;s:19:"jetpack/jetpack.php";i:9;s:45:"limit-login-attempts/limit-login-attempts.php";i:10;s:26:"mtouch-quiz/mtouchquiz.php";i:11;s:27:"my-calendar/my-calendar.php";i:12;s:33:"questionnaire2/questionnaire2.php";i:14;s:43:"shortcodes-ultimate/shortcodes-ultimate.php";i:16;s:37:"user-role-editor/user-role-editor.php";i:17;s:21:"wp-polls/wp-polls.php";i:18;s:39:"wp-youtube-player/wp-youtube-player.php";i:19;s:31:"yandexmetrika/yandexmetrika.php";i:20;s:21:"zakladka/zakladka.php";}

Сохраняем новое значение. После этого сайт и админка должны вернуться к жизни!

Как предупредить возникновение таких ситуаций?

По возможности не устанавливайте плагины, скачанные из Интернета вручную - они могут иметь устаревшую (или наоборот, слишком новую) версию не совместимую с вашей версией Wordpress.

Вместо этого пользуйтесь встроенной функцией поиска плагинов в админке Wordpress - вводите имя плагина, он вам выводит ссылку на установщик. И заодно пишет, проверялась ли совместимость этого плагина с вашей версией Wordpress.

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