Как создать дополнительные настройки для темы

Довольно часто я встречаюсь с необходимостью сделать для темы WordPress дополнительные настройки, которые администратор сайта мог бы менять по своему усмотрению.

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

Создание настроек

В первую очередь реализуем хранение этих контактных данных. Для этого в файл function.php нужно добавить код:

add_action('customize_register', function($customizer){
    $customizer->add_section(
        'dop_setting',
        array(
            'title' => 'Настройки сайта',
            'description' => 'Настройки сайта',
            'priority' => 35,
        )
    );
$customizer->add_setting(
    'phone',
    array('default' => 'xxx')
);
$customizer->add_control(
    'phone',
    array(
        'label' => 'Телефон',
        'section' => 'dop_setting',
        'type' => 'text',
    )
);
$customizer->add_setting(
    'email',
    array('default' => 'xxx')
);
$customizer->add_control(
    'email',
    array(
        'label' => 'Емейл',
        'section' => 'dop_setting',
        'type' => 'text',
    )
);
});

Данный код добавляет секцию (функция add_section) в раздел меню “Внешний вид – Настроить”, то есть туда же, где WP отображает часть своих настроек. Новая секция будет отображаться с названием, которое мы передали с аргументом Title.

Для каждой настройки с помощью функции add_setting мы задаем ее название и значение по умолчанию, а помощью функции add_control задаем отображение в виде поля. Собственно если посмотреть на код и на картинки с результатом, то легко понять, что к чему.создание настроек для темы

nastrojki-sajta-1

Получение настроек

После создание новых настроек их необходимо получить и использовать в нужном месте. Для этого служит функция get_theme_mod. У нее 2 параметра: название нужной переменной, значение по умолчанию (если переменная не найдена). То есть если нам нужно вывести телефон, который в вышеприведенном коде содержится в переменной phone, нам нужно указать код:

<?php echo get_theme_mod('phone', '-1'); ?>

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

* Нажимая на кнопку "Отправить" Вы соглашаетесь с политикой конфиденциальности.