Как разрешить конфликт плагинов в WordPress?

Одной из самых тревожных проблем, с которыми может столкнуться пользователь WordPress, является установка плагина и его последующая активация, что приводит к печально известному ‘белой странице смерти’.

💰 Настало время зарабатывать!
Top Crypto покажет лучшие монеты для реального роста!

Присоединиться в Telegram

На этом экране, который ранее демонстрировал ваш элегантно оформленный сайт, теперь отображается простой белый фон или несколько строк необработанного текста без категорий.

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

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

Эта статья расскажет о том, как их исправить.

Конфликты плагинов становятся все менее частыми.

Сейчас пользователи реже сталкиваются с конфликтами плагинов, поскольку устанавливают плагины, которые не мешают друг другу.

В последние несколько лет в WordPress были внедрены меры безопасности. В случае ошибки, вместо полной активации плагина эти меры позволяют системе автоматически откатиться, сообщить об ошибке и оставить плагин неактивным.

Для большинства пользователей это то, что они видят.

В настоящее время рекомендуется проводить расследование с использованием данного плагина в условиях симулированной тестирующей среды. Однако если плагин является не редким, может потребоваться альтернатива, которая не повлияет на текущую конфигурацию.

Конфликты с плагинами часто возникают в следующих ситуациях: при ручной загрузке плагина ‘Must Use’ (MU) через такие инструменты как FTP, если какой-либо из ваших плагинов обновится или у вас активен собственный плагин и сервер получает обновления.

Я расскажу вам о своем процессе разрешения конфликтов плагинов.

У вас есть доступ к WordPress?

Для начала первый вопрос, который стоит задать — есть ли у вас доступ к WordPress?

Если вы столкнулись с проблемой, часто рекомендуется отключить все плагины и использовать стандартную тему в качестве отправной точки, чтобы определить источник проблемы.

Не оптимально выполнять это действие на действующем сайте, так как он может все еще функционировать с множеством ключевых функций.

Как профессионал в области цифрового маркетинга, я бы порекомендовал взглянуть на проблему с новой стороны, настроив инструмент проверки здоровья и устранения неполадок. Таким образом, вы запустите версию своего сайта с использованием стандартной темы и без активных плагинов. Это позволит вам выявить любые проблемы, вызванные конфликтами между плагинами или несовместимостью тем, что значительно упростит процесс отладки.

Как профессионал в области диджитал маркетинга, я рекомендую активировать каждый плагин отдельно и внимательно отслеживать возможные проблемы. Когда я определю проблемный плагин, он останется деактивированным для обеспечения оптимальной производительности.

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

Если у вас нет доступа к WordPress

Если вы не можете использовать WordPress, решение любых проблем может потребовать выполнения ряда шагов вместо быстрого решения.

При определении конфликтов плагинов этот метод является моим предпочтительным выбором. Шаги могут выполняться в любой последовательности, исходя из вашего понимания и доступных ресурсов.

У вас есть доступ к административной почте? Вы можете получить письмо.

Если вашей учётной записи пользователя предоставлены административные привилегии в WordPress, как указано в разделе ‘Настройки’ > ‘Общие’, существует вероятность того, что вам будет отправлено электронное письмо.

Поступая таким образом, вы сможете войти в режим восстановления сайта. Внутри вы можете авторизоваться, и система должна определить проблемный плагин. После его идентификации вы сможете отключить его.

Проверьте файл журнала хоста

Первым шагом было бы проверить файл журнала хоста.

В зависимости от используемого вами сервера, эти файлы можно найти в панели управления или cPanel. Однако если у вас есть только файловый браузер, они зачастую располагаются за пределами папок /public_html/ или /www/, которые являются публично доступными. Обычно их находят на один уровень выше в папке под названием /logs/

Как опытный вебмастер, я бы рекомендовал вам найти файл с именем ‘error_log’ и затем скачать его. После скачивания откройте его для поиска любых фатальных ошибок (Fatal Errors), которые обычно находятся ближе к концу документа.

В сообщении об ошибке приведены несколько путей к файлам, которые указывают на места возникновения проблем с файлами.

Нет журналов? Возможно, вам нужно их активировать.

Если у вас есть доступ по протоколам FTP/SFTP к сайту, но нет журналов (логов), возможно потребуется их активировать.

В корневой директории сайта WordPress добавьте следующие строки в файл wp-config.php.

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

Создание файла лога под названием «debug.log» внутри директории «wp-content/» позволит вам увидеть возможные ошибки. Вы можете проверить эти ошибки, открыв созданный файл.

Совет по безопасности: так как файл debug.log доступен всем, хорошей практикой будет удалить соответствующие строки из файла wp-config.php после решения проблемы. Затем не забудьте также удалить сам файл debug.log.

Решение конфликтов плагинов

Каким бы методом вы ни пользовались, ваши логи должны выдавать строки, подобные следующим ниже:-

Fatal error: Cannot redeclare hello_dolly_get_lyric() (previously declared in/wp-content/plugins/broken-plugin/index.php:17) in /wp-content/plugins/hello-dolly/hello.php on line 46

Каждый элемент означает:

  • «Фатальная ошибка» определяет ошибку. Фатальная ошибка в PHP означает, что сайт немедленно перестает работать. Возможны другие ошибки или предупреждения.
  • «Нельзя переобъявить функцию hello_dollies_get_lyric()» является критической ошибкой. В данном случае присутствуют две функции PHP с одинаковым именем (hello_dollies_get_lyric()), что приводит к конфликту плагинов.
  • «»/wp-content/plugins/hello-dollly/hello.php on line 46″ сообщает вам, где произошла эта ошибка. Хотя номер строки не важен (если вы сами не занимаетесь программированием), он указывает на плагин, в котором возникла ошибка – в данном случае это «hello-dollly».

Следующий шаг — вручную изменить плагин.

В предпочитаемом вами программном обеспечении FTP или файловом менеджере перейдите к директории plugins в вашей установке WordPress, конкретно /wp-content/plugins/. Переименуйте папку плагина, который вы хотите отключить (например, измените ‘hello-doll’ на ‘temporary-disabled-hello-doll’). После этого при следующем входе в WordPress плагин будет деактивирован.

Вместо удаления плагина WordPress лучше его оставить, если это возможно. Такое действие позволит эффективно отключить данный плагин.

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

Для разработчиков: хорошие практики могут предотвратить конфликты плагинов

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

Вот полезное руководство по предотвращению конфликтов плагинов между вашим сайтом и другими WordPress-ресурсами: 1. Поддерживайте актуальность плагинов: Регулярно обновляйте все свои плагины до последних версий, обеспечивая их совместимость с текущей версией WordPress. 2. Используйте плагины из доверенных источников: Загружайте и устанавливайте плагины только из надежных источников, таких как официальный репозиторий WordPress или сайты разработчиков. 3. Ограничьте количество активных плагинов: Не перегружайте свой сайт слишком большим количеством плагинов, так как это может привести к конфликтам. Деактивируйте ненужные плагины. 4. Проверяйте совместимость плагинов: Перед установкой нового плагина убедитесь в его совместимости с уже установленными плагинами и версией WordPress, которую вы используете. 5. Проведите тестирование после установки: После установки нового плагина тщательно протестируйте свой сайт, чтобы убедиться, что все работает как ожидалось. Если возникнут проблемы, попробуйте деактивировать недавно установленный плагин или обратитесь за помощью к разработчику.

  1. Если вы не используете пространства имён PHP, то я рекомендую называть ваши классы или функции с префиксом. Например, plugin_name_function_name может помочь избежать одинаковых имен функций для схожих функциональностей. Постарайтесь сделать их уникальными (так что не используйте wp_ как префикс).
  2. Использование `function_exists` вокруг ваших функций, чтобы предотвратить загрузку функций в случае их уже существующего определения.
  3. Если вы импортируете функциональность, использование class_exists может проверить, был ли класс уже загружен.
  4. Задержка загрузки функциональности, поэтому полезно назвать папку плагина буквой алфавита, стоящей ближе к концу. Не все разработчики следуют одному и тому же подходу.
  5. Если вы строите сайт, убедитесь, что конфигурация вашего сервера такая же или максимально близка к конфигурации рабочей среды.

Невозможно абсолютно гарантировать, что ваш плагин или тема не будет конфликтовать с каким-либо из многочисленных плагинов, доступных в сообществе WordPress.

Выполнив шаги, упомянутые ранее, вы значительно сократите возможные конфликты и избавите себя от множества будущих проблем, которые могут возникнуть при решении технических вопросов. Небольшие изменения в вашей практике кодирования приведут к значительным улучшениям.

Смотрите также

2025-04-16 14:09