mildfuzz
  • 0
Мастер

использовать поле add_settings_field правильно?

  • 0

Я использую 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>';
}
Share
  1. Все еще нет ответов? Просто чтобы уточнить, моя проблема в том, что настройки не сохраняются, я не могу найти их в БД

    • 0
  2. Документация для add_settings_field() говорит следующее:

    Вы ДОЛЖНЫ зарегистрировать любые параметры, используемые этой функцией, с помощью register_setting(), иначе они не будут сохранены и обновлены автоматически.

    • 0
  3. Следует отметить, что для добавления поля настроек необходимо зарегистрировать это поле в зарегистрированном разделе.

    Таким образом, это должно использоваться вместе с вашим собственным зарегистрированным разделом или, альтернативно, быть полем для добавления в существующий раздел (например, на страницах параметров).

    Видеть. 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).

    • 0

Оставить ответ

You must login to add an answer.