Intereting Posts
Изменение названия веб-сайта «<- назад к» в wp-login.php Почему я получаю ERR_NAME_NOT_RESOLVED, когда добавляю сайт в свою многоуровневую установку? Цикл по умолчанию для цикла таксономии возвращает 1 запись вместо 8 archive- {custom_post_type} .php не распознается wordpress Стиль текста перед <! – больше -> в single.php Тема одной страницы: Могу ли я отображать другие страницы с соответствующими темами на другой странице? Избегайте WordPress, классифицируя запрос постоянной ссылки как не найденный 404 Page Включить функции и методы по умолчанию получить строку запроса запроса Термин Описание Echo или Return – проблемы с отображением Нет ссылки на пустой странице в wp_list_pages Как получить имя активного меню? Показать сообщение автора для пользовательского типа сообщения в окне редактирования-публикации Порядок Wp_query по нескольким настраиваемым полям? Могу ли я указать, что custom.css загружается в Appearance> Editor вместо style.css?

Конфликт 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'];