Что такое functions.php и как его использовать в WordPress?
functions.php или функционный файл темы – это важный файл, используемый темами WordPress. Он работает подобно небольшому плагину и автоматически загружается как в панели администратора, так и на внешних страницах сайта. Обычно его используют для добавления функций, классов, действий и фильтров, которые применяются в рамках темы. Через этот файл можно расширять функциональность темы и вносить изменения в поведение WordPress.
Где находится functions.php и как его использовать
Файл 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

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