Файл functions.php в WordPress

Файл functions.php в WordPress — это один из ключевых инструментов для настройки сайта. Иными словами, это место, куда можно добавить собственный код и изменить поведение сайта без правки ядра системы.

Он работает как встроенный мини-плагин: всё, что вы добавляете в этот файл, автоматически применяется при загрузке темы.

Где находится functions.php в WordPress

В WordPress каждый элемент системы отвечает за свою часть работы, и файл functions.php — не исключение. При этом важно понимать, что на сайте может быть не один такой файл, а сразу несколько.

В первую очередь стоит знать: каждая тема WordPress содержит собственный файл functions.php. Это удобно, потому что позволяет настраивать функциональность отдельно для каждой темы. Однако есть важный нюанс — при смене темы все изменения, внесённые в этот файл, могут быть потеряны.

Кроме того, существует ещё один файл functions.php, о котором часто забывают новички — это файл, входящий в ядро WordPress. Давайте разберёмся, где находятся оба варианта и чем они отличаются.

Файл functions.php в ядре WordPress

Системный functions.php является частью самого WordPress. Он входит в базовый набор файлов и отвечает за фундаментальную работу системы.

Найти его можно в следующем каталоге:

wp-includes/functions.php

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

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

Если вам нужно что-то изменить — используйте файл темы, а не ядра.

Файл functions.php в теме WordPress

Второй и основной файл, с которым работают пользователи — это functions.php, расположенный в папке темы.

Путь к нему выглядит так:

wp-content/themes/название_темы/functions.php

Именно этот файл предназначен для редактирования и добавления собственного функционала.

Файл темы:

  • безопаснее в использовании
  • имеет более простую структуру
  • содержит меньше кода
  • предназначен для доработки сайта

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

Как работает functions.php

Чтобы понять ценность этого файла, важно разобраться, как он вообще работает.

Когда пользователь открывает сайт, WordPress не просто показывает страницу — он проходит определённую цепочку загрузки файлов.

Вот как это происходит:

  1. Загружается ядро WordPress
  2. Подключаются основные системные файлы
  3. Загружаются плагины
  4. Подключается активная тема
  5. Загружается файл functions.php темы
  6. Выполняются хуки, фильтры и вывод страницы

Файл functions.php загружается после ядра и плагинов, но до вывода страницы.

Это означает, что functions.php позволяет изменять поведение ядра WordPress и плагинов, которые установлены на вашем сайте.

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

  1. functions.php родительской темы
  2. functions.php дочерней темы

Но, в отличие от других файлов шаблона, functions.php не заменяется, а подключается дополнительно (расширяет родительский файл). Это значит, что код из обоих файлов работает одновременно.

При совпадении имён функций возникнет ошибка PHP, поэтому перед объявлением функции рекомендуется проверять её существование:

if (!function_exists('test')) {
    function test() {}
}

Что можно делать через functions.php

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

Вот самые распространенные задачи:

Базовые настройки темы

  • включение миниатюр записей
  • добавление поддержки логотипа
  • регистрация меню

Работа с интерфейсом

  • добавление новых виджетов
  • изменение внешнего вида элементов
  • настройка страницы входа

Подключение файлов

  • CSS-стили
  • JavaScript
  • сторонние библиотеки

Расширение функциональности

Через functions.php можно изменить почти любой аспект сайта — от мелких деталей до логики работы.

Как получить доступ к файлу

Есть несколько способов открыть functions.php. Выбор зависит от вашего опыта.

Способ 1

Через админку WordPress

Зайдите в админку сайта в раздел Внешний вид > Редактор тем.

Способ 2

Через FTP

Подключитесь к сайту через файловый менеджер (FileZilla). Откройте файл functions.php на редактирование.

Как редактировать functions.php

Работа с этим файлом требует аккуратности. Лучше придерживаться понятного алгоритма:

  1. Обязательно сделайте резервную копию functions.php или всей папки вашего шаблона.
  2. Откройте файл одним из способов описанных в предыдущем разделе.
  3. Внесите изменения в файл или добавьте новый код. Например, фрагмент кода, который добавит вашей теме поддержку миниатюр записей.
add_theme_support( 'post-thumbnails' );
  1. Сохраните изменения.
  2. Проверьте работу сайта.

Не стоит вносить сразу много изменений — лучше делать по одному и проверять результат.

Частые ошибки functions.php

Редактирование файла functions.php может привести к проблемам на сайте. Перечислим самые распространенные проблемы и их решения.

  • Синтаксические ошибки. Чаще всего возникают из-за пропущенных точек с запятой, неправильных скобок, кавычек или опечаток..
  • Белый экран. Самая частая проблема после изменений в файле. Обычно возникает из-за критической PHP-ошибки в functions.php. Для исправления необходимо открыть файл и откатить изменения.
  • Сбой в работе сайта. Приводит к полной недоступности сайта. Чтобы узнать причину ошибки, необходимо в файле wp-config.php включить режим отладки:
define('WP_DEBUG', true);

Безопасное изменение functions.php

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

Преимущества использования тестовой среды:

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

Наиболее популярный код в functions.php

  1. Подключение js-скриптов и css-стилей:
add_action('wp_enqueue_scripts', 'enqueue_theme_scripts');

function enqueue_theme_scripts()
{

    wp_enqueue_style(
        'style',
        get_template_directory_uri() . '/assets/css/main.min.css',
        [],
        filemtime(get_theme_file_path('/assets/css/main.min.css'))
    );

    wp_enqueue_script(
        'script',
        get_template_directory_uri() . '/assets/js/app.min.js',
        [],
        filemtime(get_theme_file_path('/assets/js/app.min.js')),
        [
            'in_footer' => true
        ]
    );
}
  1. Добавление поддержки дополнительных функций шаблона:
add_action('after_setup_theme', 'custom_theme_setup');

function custom_theme_setup() {
    add_theme_support('post-thumbnails');
    register_nav_menus(array(
        'primary' => 'Меню в шапке',
        'footer' => 'Меню в подвале'
    ));
}
  1. Регистрация новых размеров миниатюр:
add_action('after_setup_theme', 'add_custom_thumb_sizes');

function add_custom_thumb_sizes() {
    add_image_size('custom-thumbnail', 350, 350, true);
    add_image_size('banner', 1200, 380, true);
}
  1. Регистрация нового шорткода:
add_shortcode('custom_text', 'output_shortcode_custom_text');

function output_shortcode_custom_text() {
    return 'Произвольный текст';
}