Легкое добавление настроек темы WordPress через customizer
Верстая очередной шаблон на CMS WordPress всегда необходимо думать о заказчиках, которые захотят максимально гибко изменять настройки темы, будь то номер телефона, картинка логотипа и многое другое.
В интернете достаточно много громоздких способов создания страницы настроек через Settings API, где необходимо верстать страницу настроек и делать кучу лишних телодвижений. С приходом customizer в этом отпала необходимость, т.к. все делается достаточно просто и удобно. Итак…Для добавления настроек добавляем следующий код в functions.php вашей темы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | add_action('customize_register', function($customizer) { $customizer->add_section( 'section_one', array( 'title' => 'Настройки сайта', 'description' => '', 'priority' => 11, ) ); $customizer->add_setting('phone', array('default' => '89215555555') ); $customizer->add_control('phone', array( 'label' => 'Телефон', 'section' => 'section_one', 'type' => 'text', ) ); }); |
В данном коде мы добавили новую секцию (add_section с именем «Настройки сайта»), добавили стандартные значения настроек (add_setting) и добавили поле phone — телефон (add_control с типом настройки text).
Настройки можно увидеть и менять через меню Внешний вид — Настроить:
Думаю, не сложно догадаться, что можно добавить разное количество секций и настроек в них.
WordPress предлагает достаточный набор типов полей, которые могут расширяться дополнительными самописными или предустановленными плагинами:
- text
- url
- password
- textarea
- date
- range
Загрузчик изображений можно добавить следующим образом
1 2 3 4 5 6 7 | $customizer->add_setting('logo'); $customizer->add_control(new WP_Customize_Image_Control($customizer, 'logo', array( 'label' => 'Логотип', 'section' => 'section_one', 'settings' => 'logo', ))); |
Вывести в шаблон значение настроек достаточно просто:
1 | echo get_theme_mod('logo', '/images/default-logo.png'); |
Вторым параметром задается значение по умолчанию.
Ссылки на документацию:
https://codex.wordpress.org/Theme_Customization_API
https://codex.wordpress.org/Class_Reference/WP_Customize_Manager/add_control
Комментарии к Легкое добавление настроек темы WordPress через customizer (4)
Александр
Как сделать что бы можно было параметры например задавать на украинском и русском языке и зависимости от языка они менялись?
Олег Колосов
Здравствуйте! У меня такой вопрос, а как сделать ввод только чисел?
Stanislav
Приветствую. Можно использовать type = «number»
Олег Колосов
Спасибо!