Конфликт checkbox на моей пользовательской странице настроек плагина

Я пытаюсь создать собственный плагин для WordPress с помощью страницы параметров администратора.

На странице параметров пользователь должен иметь возможность проверить параметр, и если флажок установлен, плагин должен добавить раздел в HTML-форму.

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

Обратите внимание, что мои параметры плагина работают с каждым компонентом, и я столкнулся с этой проблемой только с помощью флажков.

Вот часть флажка моего плагина. Есть ли какие-то конфликты? Что я делаю не так?

function set_options() { register_setting( 'checkbox-1-settings', 'my_checkbox_1_name' ); register_setting( 'checkbox-2-settings', 'my_checkbox_2_name' ); } function admin_page(){ ?> <form method="post" action="options.php"> <?php settings_fields( 'checkbox-1-settings' ); ?> <?php settings_fields( 'checkbox-2-settings' ); ?> <?php do_settings_sections( 'checkbox-1-settings' ); ?> <?php do_settings_sections( 'checkbox-2-settings' ); ?> <table class="form-table"> <tr valign="top"> <th scope="row">Option 1</th> <td><input type='checkbox' name='my_checkbox_1_name' <?php checked( get_option('my_checkbox_1_name'), 1 ); ?> value='1'></td> </tr> <tr valign="top"> <th scope="row">Option 2:</th> <td><input type='checkbox' name='my_checkbox_2_name' <?php checked( get_option('my_checkbox_2_name'), 1 ); ?> value='1'></td> </tr> </table> <?php submit_button(); ?> </form> <?php } function my_plugin() { $html = '<form> if (get_option('my_checkbox_1_name')) { $html .= '<select name="select1" id="test1"> <option selected disabled>select1</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select>'; } else if (get_option('my_checkbox_2_name')) { $html .= '<select name="select2" id="test2"> <option selected disabled>select2</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select>'; } return $html . '<input type="submit" value="Go!"></form>' . $content; } 

Solutions Collecting From Web of "Конфликт checkbox на моей пользовательской странице настроек плагина"

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

  function set_options() { register_setting( 'checkbox-1-settings', 'my_checkbox_1_name' ); register_setting( 'checkbox-2-settings', 'my_checkbox_2_name' ); } 

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

 function set_options() { register_setting( 'checkbox-settings', 'my_checkbox_1_name' ); register_setting( 'checkbox-settings', 'my_checkbox_2_name' ); } 

Обновить

Получите настройки API и сохраните их в массиве.

 $options = (array) get_option( 'plugin_options' ); 

Теперь $ options – это массив, содержащий все полях полей. и вы можете получить значение любого ключа, просто передав этот ключ с этим массивом.

например, чтобы получить значение check_2

 $check_two = $options['check_2'];