startup-photos

Что такое functions.php и как его использовать в WordPress?

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

Где находится functions.php и как его использовать

Файл functions.php расположен в папке вашей темы:

wp-content/themes/имя_темы/functions.php

В нём вы можете использовать встроенные функции WordPress, добавлять собственные PHP-функции и подключаться к действиям и фильтрам ядра. Хотя каждая установленная тема имеет свой собственный файл functions.php, работает только тот, который принадлежит активной теме. Если в вашей теме по какой-либо причине нет этого файла, вы можете просто создать текстовый файл с именем functions.php и поместить его в директорию темы.

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

Что можно делать через functions.php (с примерами)

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

Включение поддержки миниатюр (thumbnails):

add_theme_support( 'post-thumbnails' );

Добавление новых форматов записей:

add_theme_support( 'post-formats', array( 'aside', 'gallery', 'quote' ) );

Создание навигационных меню:

register_nav_menus( array(
    'main_menu' => 'Главное меню',
    'footer_menu' => 'Меню в футере',
) );

Подключение собственных скриптов и стилей:

function my_theme_scripts() {
    wp_enqueue_style( 'main-style', get_stylesheet_uri() );
    wp_enqueue_script( 'custom-js', get_template_directory_uri() . '/js/custom.js', array('jquery'), null, true );
}
add_action( 'wp_enqueue_scripts', 'my_theme_scripts' );

Автоматическое добавление текста в конец каждой записи:

function add_custom_text($content) {
    if (is_single()) {
        $content .= '<p>Спасибо за чтение! Подпишитесь на обновления.</p>';
    }
    return $content;
}
add_filter('the_content', 'add_custom_text');

Создание собственного виджета:

class Welcome_Widget extends WP_Widget {
    function __construct() {
        parent::__construct('welcome_widget', 'Приветственный виджет');
    }
    function widget($args, $instance) {
        echo $args['before_widget'] . '<p>Добро пожаловать на наш сайт!</p>' . $args['after_widget'];
    }
}
add_action('widgets_init', function() {
    register_widget('Welcome_Widget');
});

Регистрация пользовательского типа записи (Custom Post Type):

function create_portfolio_post_type() {
    register_post_type('portfolio',
        array(
            'labels' => array('name' => 'Портфолио'),
            'public' => true,
            'has_archive' => true,
            'supports' => array('title', 'editor', 'thumbnail')
        )
    );
}
add_action('init', 'create_portfolio_post_type');

Что лучше помещать в functions.php, а что — в плагин

Functions.php идеален для:

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

Плагин лучше использовать, если:

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

Советы по работе с functions.php

  • Используйте дочернюю тему для внесения изменений, чтобы обновления основной темы не стерли ваши функции.
  • Минимизируйте количество кода в functions.php — если функционал большой или универсальный, лучше сделать плагин.
  • Всегда тестируйте добавленные функции на локальном или тестовом сайте, чтобы не сломать сайт на продакшене.
  • Используйте хуки (actions и filters), чтобы не изменять ядро WordPress и тем самым сохранить совместимость с будущими обновлениями.

Вывод

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

Наша специальность — разработка и поддержка сайтов на WordPress. Контакты для бесплатной консультации — [email protected], +371 29394520


0 ответы

Ответить

Хотите присоединиться к обсуждению?
Не стесняйтесь вносить свой вклад!

Добавить комментарий