правильно используйте поле "Добавить настройки"?
Я использую add_settings_field, чтобы добавить дополнительные сведения в меню настроек, но не уверен, как сохранить настройки или вызвать их обратно в своей теме.
Вот код на данный момент
add_action('admin_init','vimeo_setup');
function vimeo_setup(){
add_settings_field('vimeo_id','Vimeo ID','display_vimeo','general');
}
function display_vimeo(){
echo '<input type="text" name="vimeo_id" id="vimeo_id" value="" size="30" style="width:85%" />';
echo '<p><small> Enter your Vimeo ID here.</small></p>';
}
2 answers
Документация для add_settings_field() Гласит следующее:
Вы ДОЛЖНЫ зарегистрировать любые параметры, используемые этой функцией, с помощью register_setting(), иначе они не будут сохранены и обновлены автоматически.
Следует отметить, что для добавления поля настроек вы должны зарегистрировать это поле в зарегистрированном разделе..
Таким образом, это должно использоваться вместе с вашим собственным зарегистрированным разделом или, в качестве альтернативы, быть полем для добавления в существующий раздел (например, на страницах опций).
См. http://codex.wordpress.org/Function_Reference/add_settings_section
Я бы зашел так далеко, что сказал, что они не очень хороши, когда дело доходит до создания плагина страницы опций или аналогичные (параметры темы), просто потому, что каждый зарегистрированный раздел и поле должны быть снабжены обратным вызовом (представьте, сколько обратных вызовов вам понадобится, если у вас есть 3-4 раздела с 5-6 полями). Конечно, вы можете выполнять динамические обратные вызовы (поэтому вам нужен только один обратный вызов для раздела и один для полей), передавая параметры... (вам также нужно будет убедиться, что вы напечатали номера для этих разделов/полей)..
Лично я считаю, что лучше просто зарегистрировать свой параметры/настройки, распечатайте свои собственные разделы/поля и вызовите один одноразовый номер, чтобы охватить все ваши настройки..
// 1: Reference, 2: Option name, 3: Callback function to sanitize the data
register_setting( 'reference_name', 'option_name', 'example_callback' );
Затем, где бы вы ни печатали свои различные поля опций, вам нужно напечатать только одно значение, которое охватывает весь лот..
settings_fields( 'reference_name' );
Если вы зарегистрировали различные разделы и поля, вам также придется сделать это для каждого из зарегистрированных разделов.
do_settings_sections('your_section');
На самом деле единственный важный аспект настройки пользовательских параметров - убедиться, что вы определяете свой собственный обратный вызов, когда регистрация настроек и соответствующая очистка этих данных (третий параметр для параметра register_setting).