Если вы администрируете сайт на CMS WordPress и вдруг увидели белый экран с таким сообщением: Fatal error: Uncaught Error: Call to undefined function ... in /wp-content/themes/your-theme/functions.php on line 23 – не паникуйте. Это распространенная ошибка, которую обычно легко исправить. В этой статье мы разберем, что ее вызывает, как ее диагностировать и как ее решить шаг за шагом.
Кратко: эта ошибка обычно означает, что WordPress пытается вызвать функцию, которая не существует, часто это обусловлено отсутствием плагина, ошибкой в написании или несовместимостью. Чтобы исправить это, проверьте строку ошибки, подтвердите активацию плагина/темы, проверьте версию PHP и поищите отсутствующие включения или конфликты.
Что означает ошибка Fatal error: Uncaught Error: Call to undefined function?
Эта конкретная ошибка указывает на то, что ваш код WordPress пытается вызвать функцию, которая не существует на момент ее выполнения. В результате PHP останавливает выполнение, и WordPress не может загрузить страницу. «Uncaught Error: Call to undefined function» означает, что функция, которую вы пытаетесь использовать, еще не была объявлена, была удалена или недоступна в текущем контексте.
Распространенные причины ошибки Fatal error: Uncaught Error: Call to undefined function?
1. Отсутствующие или неправильно загруженные плагины или темы
Если ваш код зависит от плагина или темы, определяющей функцию, и этот плагин/тема деактивированы, удалены или загружены неправильно, функция не будет существовать при вызове.
2. Несовместимость плагинов
Недавно установленный плагин может быть несовместим с вашей версией WordPress или версией PHP, установленной ранее. Если плагин использует функцию, введенную в новой версии PHP (например, str_contains() в PHP 8.0), старые среды будут выдавать фатальную ошибку.
3. Неправильный пользовательский код
Имена функций в PHP не чувствительны к регистру, но ошибка в написании может привести к неопределенному вызову. Например:
add_action(“init”, “custm_function”); // Ошибка в написании: «custm_function» -> «custom_function»
4. Поврежденные файлы ядра WordPress
Если ваша установка WordPress повреждена или неполная, некоторые встроенные функции могут отсутствовать. Когда основные файлы (например, wp-includes/functions.php) повреждены или отсутствуют, встроенные функции WordPress могут стать недоступными, даже если они обычно существуют.
5. На сервере отключены некоторые расширения по умолчанию
Отсутствие или отключение обязательных PHP-расширений на сервере, в частности mbstring. Это расширение необходимо для работы с многобайтовыми строками, что является критически важным для корректной обработки текстовых данных во многих плагинах и темах WordPress. PHP-функция mb_strlen() является частью расширения mbstring. Если оно не установлено или не активировано на сервере, любой обращение к соответствующим функциям приведет к фатальной ошибке с сообщением о «Call to undefined function». Эта ошибка обычно возникает после миграции сайта на новый хостинг, при смене версии PHP без повторного включения расширений и при установке плагина или темы, которые зависят от mbstring.
6. Отключенные функции по соображениям безопасности
Иногда ошибка возникает, когда код пытается вызвать функцию, отсутствующую в среде выполнения. Часто причина – эта функция намеренно отключена в конфигурационном файле php.ini из соображений безопасности. Например, функции типа exec(), shell_exec(), passthru() или system() часто блокируются на совместных хостингах.
Все еще видите ошибку? Позвольте нам помочь
Как исправить ошибку Fatal error: Uncaught Error: Call to undefined function: пошаговая инструкция
1. Не забудьте сделать резервную копию!
Перед тем, как проводить какие-либо настройки или модификации, сделайте резервную копию всего вашего сайта WordPress (файлы + база данных). Это гарантирует, что вы сможете вернуть все назад, если во время устранения неисправностей что-то пойдет не так.
2. Внимательно прочтите сообщение об ошибке
Посмотрите на файл и номер строки, где возникает ошибка. Это подскажет вам, с чего начать расследование: Fatal error: Uncaught Error: Call to undefined function my_custom_function() in /wp-content/themes/your-theme/functions.php:45 Перейдите к указанному файлу и номеру строки. Проверьте, правильно ли написана функция и объявлена ли она.

3. Временно отключите плагины, чтобы проверить наличие конфликтов
Часто ошибка возникает после установки или обновления плагинов. Чтобы проверить наличие конфликтов, последовательно отключайте установленные плагины. Сделать это можно, либо через админку, если к ней есть доступ, либо на хостинге через файловый менеджер, либо FTP. Чтобы сделать это, перейдите к папке plugins и последовательно переименовывайте установленные плагины. Для этого достаточно, например, к названию плагина добавить префикс “old”, или любой другой по желанию.

4. Восстановите или переустановите основные файлы WordPress
Если вы подозреваете, что основные файлы WordPress повреждены, загрузите WordPress заново и перезагрузите все, кроме wp-content и wp-config.php. Или воспользуйтесь встроенной опцией ремонта в панели управления WordPress.

5. Проверьте версию PHP и расширения
Убедитесь, что ваша хостинговая среда соответствует требованиям. Некоторые функции требуют определенных версий PHP. Убедитесь, что вы используете совместимую версию:
- Войдите в свою панель управления хостингом или воспользуйтесь phpinfo();
- При необходимости обновите до PHP 8.0+;
- Убедитесь, что необходимые расширения (например, mbstring) включены. Создайте файл phpinfo.php и откройте его в браузере. Проверьте наличие секции mbstring со следующим содержанием:
<?php phpinfo(); ?>и откройте его в браузере. Проверьте наличие секции mbstring. Включение расширения, если у вас есть доступ к конфигурации сервера (например, через php.ini или панель управления), убедитесь, что строка:
extension=mbstringне закомментирована. Если у вас нет административного доступа, обратитесь в службу поддержки хостинга с просьбой включить PHP-расширение mbstring.
6. Проверьте список отключенных функций
Чтобы проверить список запрещенных функций в вашей среде PHP, создайте файл info.php со следующим содержимым
<?php phpinfo(); ?>Загрузите его на сервер и откройте его в браузере. Найдите раздел disable_functions — содержит список всех отключенных функций.
Вывод
Ошибка «Fatal error: Uncaught Error: Call to undefined function» в WordPress сначала может показаться сложной, но обычно ее легко исправить, если понять, что ее вызывает. Всегда начинайте с прочтения сообщения об ошибке, проверки того, определена ли функция и загружена ли она правильно, а также использования правильных версий WordPress и PHP. Если ошибка оказывается сложнее, чем описанные здесь способы исправления, лучше всего обратиться к нашим опытным специалистам WordPress, чтобы решить ее безопасно и эффективно.
