проблема

Краткое резюме

Симптомы

Почему это происходит

Предварительные условия перед началом обучения

Решение 1: Исправить вызов функции.

Решение 2: Проверьте расширения.

Решение 3: Проверьте наличие конфликтов плагинов.

Проверки после внесения исправлений

Если это всё ещё не поможет

Распространенные ошибки и ловушки

Вариант / альтернатива

Избегайте этой проблемы в будущем.

Ресурсы

Часто задаваемые вопросы

проблема

Если вы недавно обновили плагин Frontend Admin до версии 3.28.31 и увидели следующее сообщение об ошибке:

Fatal error: Uncaught Error: Call to undefined function ...

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

Краткое резюме

  • Убедитесь, что плагин Frontend Admin корректно обновлен.
  • Убедитесь, что все необходимые расширения включены.
  • Перед внесением изменений в рабочую среду проведите тестирование.
  • Используйте диагностические инструменты, такие как Query Monitor.
  • Проверьте журналы на наличие дополнительных ошибок.

Симптомы

  • Ошибка 500 на лицевой стороне или в административной панели вашего сайта.
  • Белый экран смерти (WSOD).
  • Функции плагина не работают или неисправны.
  • Если проблема связана с AJAX, в консоли вашего браузера появятся ошибки.

Почему это происходит

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

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

Вот некоторые распространенные причины:

  • Неполное или поврежденное обновление плагина.
  • Конфликт с другими недавно обновленными плагинами.
  • Функция зависит от отключенного расширения или модуля PHP.
  • Вызов функции перед включением соответствующего файла в процесс загрузки.

Предварительные условия перед началом обучения

  • Перед внесением каких-либо изменений обязательно создайте резервную копию своего сайта.
  • Создайте тестовую среду для проверки исправлений.
  • Убедитесь, что WordPress обновлен до версии 6.9.4, а PHP — до версии 8.1 или выше.
  • Установите диагностические плагины, такие как: Монитор запросов et Проверка работоспособности.
  • Включите WP_DEBUG для отображения ошибок PHP.

Решение 1: Исправить вызов функции.

Эта проблема может быть вызвана некорректным вызовом функции в файле плагина. Вот как это исправить:


// Code AVANT
function my_custom_function() {
    // Erreur potentielle ici : appel à une fonction non chargée
    some_undefined_function();
}

// Code APRÈS
function my_custom_function() {
    if (function_exists('some_undefined_function')) {
        some_undefined_function();
    } else {
        error_log('some_undefined_function n'existe pas');
    }
}

Экспликация:

  • if (function_exists(...)) : Перед вызовом функции проверяется, определена ли она.
  • error_log(...): Если функция не определена, необходимо зарегистрировать ошибку в журнале, что облегчит диагностику.

Где применить код: В файле functions.php вашей дочерней темы или в конкретном плагине, если функция настроена под ваши нужды.

Всегда сохраняйте файлы перед внесением изменений в PHP-файлы!

Пример дополнительного кода

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


add_action('wp_loaded', 'my_custom_function');

function my_custom_function() {
    if (function_exists('some_undefined_function')) {
        some_undefined_function();
    } else {
        error_log('some_undefined_function n'existe pas');
    }
}

использование add_action('wp_loaded', ...)Вы гарантируете, что функция будет вызвана только после полной загрузки WordPress и всех плагинов, тем самым сводя к минимуму риск ошибок, связанных с незагруженными функциями.

Решение 2: Проверьте расширения.

Иногда причиной ошибки может быть отсутствие расширений или модулей PHP. Для решения этой проблемы:

  • Подключитесь к серверу через SSH или используйте файловый менеджер.
  • Убедитесь, что установлены и включены все необходимые расширения PHP, например, "mbstring", "curl" и т. д.
  • Для получения информации о необходимых расширениях обратитесь к документации по администрированию интерфейса пользователя.

После проверки и установки отсутствующих расширений при необходимости перезапустите веб-сервер.

Чтобы проверить, какие расширения PHP включены, можно создать файл. phpinfo.php в корневом каталоге вашего сайта со следующим содержимым:


<?php
phpinfo();
?>

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

Решение 3: Проверьте наличие конфликтов плагинов.

Ещё одна распространённая проблема — конфликты с другими плагинами. Вот как это диагностировать:

  1. Отключите все плагины, кроме Frontend Admin.
  2. Проверьте, сохраняется ли ошибка.
  3. Поочередно активируйте плагины, чтобы определить, какой из них вызывает конфликт.

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

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

Проверки после внесения исправлений

  • Перезагрузите сайт, чтобы убедиться, что ошибка больше не появляется.
  • С помощью Query Monitor убедитесь, что новые ошибки не регистрируются.
  • Проверьте все функции плагина, чтобы убедиться в их корректной работе.

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

Если это всё ещё не поможет

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

Если вы используете CDN-сервис, обязательно очистите также кэш CDN.

Распространенные ошибки и ловушки

симптом Причина вероятна Рекомендуемое решение
Белый экран Ошибка PHP не отображается. Включите WP_DEBUG, чтобы видеть ошибки.
Ошибка после обновления Плагин частично обновлен. Загрузите и переустановите плагин.
Функция не найдена Вызов функции перед загрузкой Проверьте порядок загрузки файлов.
Синтаксическая ошибка PHP Неправильные изменения кода Проверьте наличие последних изменений и исправьте синтаксис.

Вариант / альтернатива

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

Избегайте этой проблемы в будущем.

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

Ресурсы

Часто задаваемые вопросы

Почему мой сайт зависает после обновления?

Это может быть вызвано конфликтами плагинов, неполными обновлениями или отключенными функциями PHP.

Как включить WP_DEBUG?

добавлять define('WP_DEBUG', true); в вашем файле wp-config.php.

А что, если я не смогу решить проблему?

Для тщательной диагностики обратитесь к опытному WordPress-разработчику.

Можно ли отключить плагин, если возникнет проблема?

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

Всегда ли мне нужно создавать резервную копию своего сайта перед обновлением?

Безусловно, это позволит вам восстановить свой сайт в случае возникновения проблем.