I'm making a plugin with an administration page witch uses the Settings API. I could make one section and one option. But how can I add other form fields to it?
If I add an input tag to the callback function, it adds it to the same field. Does that mean that if I want to add another field, do I have to create another function? I think that's too much for saving one option value. So that must not be it.
So could you modify this sample plugin, which is very simple, to add another form option? Also I'd like to add another section as well.
<?php /* Plugin Name: Settings API Demo Description: Learning Setting Field and Settings Section Author: Teno */ add_action('admin_init', 'settingsapi_init'); function settingsapi_init(){ register_setting( 'settingsapi_optiongroupname', 'settingsapi_optionname'); add_settings_section('plugin_main', 'Section 1', 'settingsapi_sectiondescription', 'settingsapi_pageslug'); add_settings_field('plugin_text_string', 'Option A', 'settingsapi_setting_string', 'settingsapi_pageslug', 'plugin_main'); add_settings_field('plugin_text_string', 'Option B', 'settingsapi_setting_string', 'settingsapi_pageslug', 'plugin_main'); } function settingsapi_sectiondescription() { echo '<p>This is a section description.</p>'; } function settingsapi_setting_string() { $options = get_option('settingsapi_optionname'); echo "<input id='plugin_text_string' name='settingsapi_optionname[option_a]' size='40' type='text' value='{$options['option_a']}' />"; // echo "<input id='plugin_text_string' name='settingsapi_optionname[option_b]' size='40' type='text' value='{$options['option_b']}' />"; // <-- this is not what I want. } // admin menu add_action('admin_menu', 'plugin_admin_add_page'); function plugin_admin_add_page() { add_options_page('Custom Plugin Page', 'Demo Settings API Menu', 'manage_options', 'settingsapi_pageslug', 'settingsapi_adminpage'); } function settingsapi_adminpage() { ?> <div class="wrap"> <h2>Demo Plugin for Settings API</h2> <form action="options.php" method="post"> <?php settings_fields('settingsapi_optiongroupname'); ?> <?php do_settings_sections('settingsapi_pageslug'); ?> <?php submit_button(); ?> </form> </div> <?php } ?>