Как создать настраиваемую опцию темы в WordPress с примерами кода

В современном WordPress-разработке очень часто требуется добавить в тему собственные настройки, которые будут доступны из панели администратора. Это позволяет удобно управлять внешним видом и функционалом сайта без изменения кода. В этой статье мы подробно разберём, как создать настраиваемую опцию темы (customizer setting) с примерами кода и рассмотрим полезные плагины, которые облегчают этот процесс.

Почему важно использовать Theme Customizer для настроек темы

WordPress Theme Customizer — это встроенный инструмент, который позволяет пользователю изменять параметры темы и видеть изменения в реальном времени. Такой подход значительно удобнее, чем редактирование файлов темы напрямую или использование отдельных плагинов для настроек.

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

Создание базовой настройки с помощью API Customizer

Для добавления своей настройки в customizer понадобится добавить код в файл functions.php вашей темы или в отдельный файл с функциями. Рассмотрим пример, как добавить опцию для выбора цвета фона сайта.

function wpdream_customize_register($wp_customize) {
    // Добавляем секцию настроек
    $wp_customize->add_section('wpdream_colors_section', array(
        'title'    => __('Цвета сайта', 'wpdream'),
        'priority' => 30,
    ));

    // Добавляем настройку цвета фона
    $wp_customize->add_setting('wpdream_background_color', array(
        'default'   => '#ffffff',
        'transport' => 'refresh',
    ));

    // Добавляем контрол выбора цвета
    $wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'wpdream_background_color_control', array(
        'label'    => __('Цвет фона', 'wpdream'),
        'section'  => 'wpdream_colors_section',
        'settings' => 'wpdream_background_color',
    )));
}
add_action('customize_register', 'wpdream_customize_register');

Этот код создаст в кастомайзере новую секцию с настройкой цвета фона. Теперь осталось применить выбранный цвет в стиле темы.

Применение выбранной настройки в теме

Чтобы выбранный цвет применялся к сайту, нужно добавить динамический CSS. Самый простой способ — вывести стиль в <head> через хук.

function wpdream_customize_css() {
    $background_color = get_theme_mod('wpdream_background_color', '#ffffff');
    echo "<style>body { background-color: {$background_color}; }</style>";
}
add_action('wp_head', 'wpdream_customize_css');

Теперь при смене цвета в настройках сайта фон будет меняться в реальном времени.

Добавление текстовых и булевых настроек

Кроме цвета, часто нужны другие типы опций — текстовые поля, выпадающие списки, переключатели.

Пример добавления текстовой настройки для вывода приветствия:

function wpdream_customize_register_text($wp_customize) {
    $wp_customize->add_section('wpdream_text_section', array(
        'title'    => __('Текстовые настройки', 'wpdream'),
        'priority' => 35,
    ));

    $wp_customize->add_setting('wpdream_welcome_text', array(
        'default'   => 'Добро пожаловать на сайт!',
        'transport' => 'refresh',
    ));

    $wp_customize->add_control('wpdream_welcome_text_control', array(
        'label'    => __('Текст приветствия', 'wpdream'),
        'section'  => 'wpdream_text_section',
        'settings' => 'wpdream_welcome_text',
        'type'     => 'text',
    ));
}
add_action('customize_register', 'wpdream_customize_register_text');

Для булевых переключателей используйте тип checkbox:

$wp_customize->add_setting('wpdream_show_banner', array(
    'default'   => true,
    'transport' => 'refresh',
));
$wp_customize->add_control('wpdream_show_banner_control', array(
    'label'    => __('Показывать баннер', 'wpdream'),
    'section'  => 'wpdream_text_section',
    'settings' => 'wpdream_show_banner',
    'type'     => 'checkbox',
));

Использование плагина Clearfy Pro для расширенных настроек

Если вы хотите быстро добавить множество полезных настроек и оптимизаций в WordPress, рекомендую обратить внимание на плагин Clearfy Pro. Он содержит модули для оптимизации, безопасности и настройки сайта без необходимости писать код.

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

Советы по организации кода настроек темы

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

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

Проверка и отладка настроек

После добавления настроек проверьте их работу в разных браузерах и на мобильных устройствах. Используйте инструмент отладки WordPress Debug Bar или плагины для проверки ошибок PHP.

Для динамического обновления настроек без перезагрузки страницы можно использовать параметр transport => 'postMessage' и JavaScript, но это тема для отдельной статьи.

Вывод выбранных настроек в шаблонах

Для использования настроек в шаблонах темы достаточно вызвать функцию get_theme_mod() с именем настройки. Например:

$welcome_text = get_theme_mod('wpdream_welcome_text', 'Добро пожаловать!');
echo '<h2>' . esc_html($welcome_text) . '</h2>';

Так вы легко сможете динамически менять содержимое сайта в зависимости от опций, заданных администратором.

Итог

Создание собственных настроек темы через WordPress Customizer — это мощный и гибкий способ дать пользователю возможность управлять сайтом без знаний кода. С помощью простых функций и контролов вы можете добавить практически любые опции.

Для ускорения разработки и расширения функционала можно использовать плагины, например, Clearfy Pro. Главное — следить за чистотой кода и удобством интерфейса настроек.

Как изменить авторские права в футере WordPress без плагина
16.02.2026
Как удалить или изменить поля формы регистрации WooCommerce
04.06.2026
Как удалить версии WooCommerce из HTML кода WordPress сайта
13.11.2025
Как удалить старые ревизии постов в WordPress для оптимизации базы данных
21.03.2026
Как добавить динамические поля в WordPress без плагинов
14.03.2026