Intereting Posts
Одновременное обновление администратора приводит к тому, что настраиваемые поля не обновляются Загружает главную страницу, но все постоянные ссылки 404 при использовании nginx & PHP-FPM Получить объект post в функции короткого кода Функция the_content не работает категория не отображается в admin Код функции.php, который работает только на localhost? Получить ссылку в файле вложения Частные ответы для комментариев новый WC_Order (); Возвращение пустого Предложения по подготовке сайта, который на 90% основан на плагине, который все еще находится на стадии бета-тестирования? Можно ли удалить один плагин из другого плагина? Если инструкция для проверки, имеет ли сообщение изображение пользовательский почтовый тип не работает. Добавление метатег в сообщение с помощью его тегов, выдержки и содержимого wp_get_attachment_image_src () работает с индексом, но не в архивах

Как использовать переключатели в плагинах WordPress с использованием настроек регистра?

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

Пример рабочего плагина просто перейдите в папку wp-content / plugins / myplug.

<?php /* Plugin Name: myplug Version: 0.1 Plugin URI: http://myplug.org Author: ME Description: Stupid plugin */ add_action('admin_init', 'myplug_register_options'); // register options for the form add_action('admin_menu', 'myplug_admin_links'); // register admin menu hyperlinks /** Function to register form fields **/ function myplug_register_options(){ register_setting('myplug_options_group', 'myplug_settings', 'myplug_validate'); } /** Function to add hyperlinks to the admin menus using hooks and filters. **/ function myplug_admin_links() { add_options_page('myplug Setup', 'myplug', 'manage_options', 'myplug', 'myplug_admin_page' ); // add link to settings page add_filter( 'plugin_action_links', 'myplug_settings_link', 10, 2 ); // add link to plugin page } /** Function to create link for plugin_action_links filter **/ function myplug_settings_link($links, $file){ if ( $file == plugin_basename( dirname(__FILE__). '/myplug.php')){ $settings_link = '<a href="options-general.php?page=myplug">' .__('Settings') . '</a>'; array_unshift( $links, $settings_link ); // place before other links } return $links; } /** Validate User Input **/ function myplug_validate($input) { $input['value1'] = wp_filter_nohtml_kses($input['value1']); $input['value2'] = wp_filter_nohtml_kses($input['value2']); $input['select_display'] = wp_filter_nohtml_kses($input['select_display']); return($input); } /** Draw the Settings Page **/ function myplug_admin_page(){ ?> <div> <h2>Options</h2> <form method="post" action="options.php"> <?php settings_fields('myplug_options_group'); ?> <?php $myplug_options = get_option('myplug_settings'); ?> <input type="checkbox" name="myplug_settings[select_value1]" value="1" <?php checked('1', $myplug_options['select_value1']); ?> /> <label style="display:inline-block;width:100px;">value1:</label> <input style="display:inline-block;width:300px;" type="text" name="myplug_settings[value1]" value="<?php echo $myplug_options['value1']; ?>" /><br /> <input type="checkbox" name="myplug_settings[select_value2]" value="1" <?php checked('1', $myplug_options['select_value2']); ?> /> <label style="display:inline-block;width:100px;">value2:</label> <input style="display:inline-block;width:300px;" type="text" name="myplug_settings[value2]" value="<?php echo $myplug_options['value2']; ?>" /><br /> <?php echo 'display:&nbsp;&nbsp;' . $myplug_options['select_display'] . '<br />'; ?> <input type="radio" name="select_display" id="item1" value="item1" <?php if($myplug_options['select_display'] == 'item1') echo 'checked="checked"'; ?> /> <input type="radio" name="select_display" id="item2" value="item2" <?php if($myplug_options['select_display'] == 'item2') echo 'checked="checked"'; ?> /> <?php submit_button(); ?> </form> </div> <?php } ?> 

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

Когда вы сохраняете свои настройки в виде массива, имя должно всегда находиться в форме array_name['option_name'] но для радиостанций вы не следуете этому правилу (но вы делаете это для других полей).

Используя ваш код, я только изменил функции myplug_validate и myplug_admin_page с помощью:

 function myplug_validate($input) { return array_map('wp_filter_nohtml_kses', (array)$input); } function myplug_admin_page() { ?> <div> <h2>Options</h2> <form method="post" action="options.php"> <?php settings_fields('myplug_options_group'); $myplug_options = get_option('myplug_settings'); ?> <input type="checkbox" name="myplug_settings[checkbox1]" value="1" <?php checked('1', $myplug_options['checkbox1']); ?> /><br /> <input type="text" class="regular-text" name="myplug_settings[text1]" value="<?php echo $myplug_options['text1']; ?>" /><br /> <input type="checkbox" name="myplug_settings[checkbox2]" value="1" <?php checked('1', $myplug_options['checkbox2']); ?> /><br /> <input type="text" class="regular-text" name="myplug_settings[text2]" value="<?php echo $myplug_options['text2']; ?>" /><br /> <input type="radio" name="myplug_settings[radio1]" value="item1" <?php checked('item1', $myplug_options['radio1']); ?> /><br /> <input type="radio" name="myplug_settings[radio1]" value="item2" <?php checked('item2', $myplug_options['radio1']); ?> /><br /> <?php submit_button(); ?> </form> </div> <?php } ?> 

Я тестировал и работает отлично.