Страница «Параметры администратора». Сохранить как массив

Я не очень хорош с PHP. Я только что создал страницу параметров администрирования WordPress, и она работает нормально:

// Admin Menu add_action('admin_menu', 'my_cool_plugin_create_menu'); function my_cool_plugin_create_menu() { $parent_slug = 'test-slug'; $capability = 'administrator'; // sub menus add_submenu_page( $parent_slug, 'Test', 'Test', $capability, 'test', 'hp_settings_page'); //call register settings function add_action( 'admin_init', 'cm_register_settings' ); } function cm_register_settings() { // title register_setting( 'mytheme_group', // Option group 'mytheme_title', // Option name 'admin_options_sanitize_text_1' //sanitize callback ); // IDs register_setting( 'mytheme_group', 'mytheme_ids', 'admin_options_sanitize_text_2' ); } // Admin Page function hp_settings_page() { ?> <div class="wrap"> <h2>Test</h2> <form method="post" action="options.php"> <?php settings_fields( 'mytheme_group' ); ?> <?php do_settings_sections( 'mytheme_group' ); ?> <table class="form-table"> <tr> <th scope="row">Title</th> <td> <textarea name="mytheme_title" rows="10" cols="100"><?php echo get_option('mytheme_title'); ?></textarea> </td> </tr> <tr> <th scope="row">IDs</th> <td> <textarea name="mytheme_ids" rows="10" cols="100"><?php echo get_option('mytheme_ids'); ?></textarea> </td> </tr> </table> <?php submit_button(); ?> </form> </div><?php } // sanitize 1 function admin_options_sanitize_text_1($input) { $new_input = sanitize_text_field( $input ); return $new_input; } // sanitize 2 function admin_options_sanitize_text_2($input) { $new_input = preg_replace("/[^0-9\,]/", "", $input ); return $new_input; } 

Это создает две строки в базе данных, и я могу отображать такие значения:

 echo get_option('mytheme_ids'); echo get_option('mytheme_title'); 

Какие изменения мне необходимо внести в этот код, чтобы сохранить его в одной строке в базе данных в виде массива? Поэтому я могу показать значения примерно так:

 $options = get_option('mytheme_options'); echo = $options['ids']; echo = $options['title']; 

Любая помощь оценивается.

Solutions Collecting From Web of "Страница «Параметры администратора». Сохранить как массив"

Вам нужно только зарегистрировать один параметр, а затем просто изменить свои входные данные формы, чтобы сохранить значения в массиве. Вот пример регистрации настройки:

 register_setting( 'mytheme_settings', 'mytheme_settings', 'admin_options_sanitize' ); $mytheme_settings = get_option( 'mytheme_settings' ); 

и разметку поля:

 <textarea name="mytheme_settings[title]"> <?php echo esc_textarea( $mytheme_settings['title'] ); ?> </textarea> 

Вам также необходимо объединить ваши функции sanitize, модифицируя их для работы со значениями в новом массиве.