Перейти к содержимому
Все статьи
Ярослав6 минут чтения

Конфликт плагинов WordPress: как найти виновника и не сломать сайт

Обложка статьи «Конфликт плагинов WordPress: как найти виновника и не сломать сайт»

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

Как выглядит конфликт

  • Не отправляется форма обратной связи или не появляется всплывающее окно.
  • Поехала вёрстка, пропали стили или кнопки на отдельных страницах.
  • Не открывается редактор страниц или админка работает очень медленно.
  • Не добавляется товар в корзину — об этом отдельно в статье про проблемы с WooCommerce.
  • В худшем случае — белый экран или «критическая ошибка».

Правило первое: не ищите на живом сайте

Поочерёдное отключение плагинов на рабочем сайте видят посетители: пропадают формы, ломаются страницы. Лучше сделать тестовую копию сайта — многие хостинги создают её одной кнопкой — и искать там. Если такой возможности нет, выручит режим диагностики, о нём ниже.

Режим диагностики: отключение только для вас

Плагин Health Check & Troubleshooting из официального каталога WordPress умеет включать режим диагностики. В нём все плагины отключаются и включается стандартная тема — но только для вашей сессии в браузере. Посетители в это время видят сайт как обычно, а вы можете включать плагины по одному и смотреть, после какого проблема вернётся.

Метод деления пополам

Если плагинов много, включать их по одному долго. Быстрее делить пополам: отключите половину и проверьте, осталась ли проблема. Если осталась — виновник среди включённых, если пропала — среди отключённых. Затем делите подозрительную половину ещё раз. Даже из 30 плагинов так находится нужный за пять-шесть проверок.

Подсказки, которые ускоряют поиск

  • Вспомните, что обновлялось или устанавливалось перед поломкой — чаще всего виноват именно этот плагин.
  • Откройте консоль браузера (F12, вкладка Console): если сломалось что-то интерактивное, там обычно видна ошибка JavaScript с названием файла плагина.
  • Включите журнал ошибок WordPress — как это сделать, я описал в статье про критическую ошибку.
  • Не забывайте про тему: иногда конфликтует не плагин с плагином, а плагин с темой.

Нашли виновника — что дальше

Проверьте, нет ли у плагина свежего обновления с исправлением, — разработчики часто выпускают его в течение нескольких дней. Можно временно вернуть предыдущую версию плагина, сообщить автору об ошибке на странице поддержки или заменить плагин аналогом. А если плагин закрывает одну мелкую функцию, иногда проще сделать её парой строк кода и убрать лишнюю зависимость.

Как не попадать в это снова

Держите только нужные плагины: каждый лишний — это ещё одна точка отказа. Обновляйте не всё разом, а по очереди, и перед крупными обновлениями делайте резервную копию. Для сайтов, которые приносят деньги, я настраиваю поддержку так, что обновления сначала проверяются на копии и только потом выкатываются на рабочий сайт. Если конфликт уже случился — помогу найти и исправить.