В WordPress есть отличный механизм для хранения опций темы или сайта, который поддерживает разные типы полей и прост в настройке.
Очень полезен, когда нужно сделать возможность хранения телефона, логотипа или адреса расположения офиса. Чтобы это все можно было менять.
Для этого можно конечно городить разные фреймворки опций, покупать расширения для ACF.
Но есть и более естественный механизм http://codex.wordpress.org/Theme_Customization_API
Пример сниппета, который добавляет хранение адреса и телефона:
<?php
/*
Короткий пример для использования Theme_Customization_API
http://casepress.org/kb/web/nastrojki-temy-wordpress-kak-dobavit-svoi-polya/
*/
/**
* Добавляет страницу настройки темы в админку Вордпресса
*/
function mytheme_customize_register( $wp_customize ) {
/*
Добавляем секцию в настройки темы
*/
$wp_customize->add_section(
// ID
'data_site_section',
// Arguments array
array(
'title' => 'Данные сайта',
'capability' => 'edit_theme_options',
'description' => "Тут можно указать данные сайта"
)
);
/*
Добавляем поле контактных данных
*/
$wp_customize->add_setting(
// ID
'theme_contacttext',
// Arguments array
array(
'default' => '',
'type' => 'option'
)
);
$wp_customize->add_control(
// ID
'theme_contacttext_control',
// Arguments array
array(
'type' => 'text',
'label' => "Текст с контактной информацией",
'section' => 'data_site_section',
// This last one must match setting ID from above
'settings' => 'theme_contacttext'
)
);
/*
Добавляем поле телефона site_telephone
*/
$wp_customize->add_setting(
// ID
'site_telephone',
// Arguments array
array(
'default' => '',
'type' => 'option'
)
);
$wp_customize->add_control(
// ID
'site_telephone_control',
// Arguments array
array(
'type' => 'text',
'label' => "Текст с телефоном",
'section' => 'data_site_section',
// This last one must match setting ID from above
'settings' => 'site_telephone'
)
);
}
add_action( 'customize_register', 'mytheme_customize_register' );
Результат выглядит вот так:
Здравствуйте. Подскажите — должны ли после заполнения полей (телефон и адрес) информацией — сама информация об этом выводиться где-нибудь на сайте? Просто в настройках поля появились, но толку от них? Информация ведь — не отображается, зачем они? Или их надо как-то подключать еще по каким-нибудь идентификаторам?
Здравствуйте! Не совсем. Добавив эти поля, вы обеспечили ввод данных.
Но чтобы их показать, нужно сделать вывод.
Если вы сохранили данные в таблицу опций, то получить их от туда можно методом http://wp-kama.ru/function/get_option
Какой шикарный способ! Спасибо.
А повторяющиеся поля так можно делать?
Теоретически да, если дружите с JS.