Добавляем настройки в тему WordPress
Начиная с версии 3.4 WordPress содержит
Часто при создании сайта для клиента или просто создания темы встает необходимость изменять некоторые сведения на сайте — номер телефона, адрес почты и т.д.. Конечно существуют отдельные плагины для создания таких настроек, но я предпочитаю делать стандартными средствами все, что позволяется.
Пример добавления настроек:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
add_action('customize_register', function($customizer) { $customizer->add_section( 'example_section_one', array( 'title' => 'Настройки сайта', 'description' => 'Контактная информация на сайте', 'priority' => 11, ) ); $customizer->add_setting( 'phone', array('default' => '88001234567') ); $customizer->add_control( 'phone', array( 'label' => 'Телефон', 'section' => 'example_section_one', 'type' => 'text', ) ); $customizer->add_setting( 'adress', array('default' => 'Г.Москва') ); $customizer->add_control( 'adress', array( 'label' => 'Адрес', 'section' => 'example_section_one', 'type' => 'text', ) ); $customizer->add_setting('file-upload'); $customizer->add_control( new WP_Customize_Upload_Control( $customizer, 'file-upload', array( 'label' => 'Логотип', 'section' => 'example_section_one', 'settings' => 'file-upload' ) ) ); }); |
Все достаточно просто — сначала добавляем секцию настроек
1 2 3 4 5 6 7 |
$customizer->add_section( 'example_section_one', array( 'title' => 'Настройки сайта', 'description' => 'Контактная информация на сайте', 'priority' => 11, ) ); |
После добавляем в эту секцию настройки
1 2 3 |
$customizer->add_setting( 'phone', array('default' => '88001234567') ); |
И управление ими
1 2 3 4 5 6 7 8 |
$customizer->add_control( 'phone', array( 'label' => 'Телефон', 'section' => 'example_section_one', 'type' => 'text', ) ); |
Так мы можем добавить одно или несколько текстовых полей. Например, загрузку логотипа можно добавить так:
1 2 3 4 5 6 7 8 9 10 |
$customizer->add_setting('file-upload'); $customizer->add_control( new WP_Customize_Upload_Control( $customizer, 'file-upload', array( 'label' => 'Логотип', 'section' => 'example_section_one', 'settings' => 'file-upload' ) ) ); |
Настройки в теме можно вывести таким способом
1 |
<?php echo get_theme_mod('file-upload', ''); ?> |
Первый параметр — название настройки, второй — значение по умолчанию. Теперь можно быстро и безболезненно менять эти настройки их меню настроек темы. Оставайтесь на связи, возникшие вопросы можете задать в комментариях
Теги: php wordpress
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.