Intereting Posts
Предоставление пользователям возможности создать сообщение, которое является настраиваемым типом сообщения на странице Как создать несколько страниц во время активной темы Как отредактировать файл post.php WordPress? Объедините два запроса в один для использования в цикле Удаление Metabox для «Slug» без удаления функциональности Пользовательские постоянные ссылки – тип сообщения – иерархическая таксономия Как создать ШАБЛОНЫ для ТАКСОНОМИИ? Что мне нужно изменить в этом коде? Справка по настройке WordPress с помощью значка FontAwesome Как удалить уведомление внутри search.php, когда результаты не найдены? Что такое базовая структура xml для импорта страницы в WordPress? Нужна помощь в интеграции плагина в тему Как передать логическое значение в wp_localize_script Обслуживание изображений с измененным размером на быстродействующем сайте без 2-х копий Значение метабокса для цикла post? Woocommerce: некоторые действия не срабатывают внутри класса

Страница параметров темы не сохраняет параметры

Я пытаюсь практиковать добавление страницы параметров темы с помощью настроек API, но, к сожалению, код, который я написал в соответствии с кодом, не работает должным образом. Когда я тестировал код, ошибки не генерировались, но параметр pe_bannar_heading не удалось сохранить, так что бы вы, пожалуйста, помогли мне найти, где проблема в следующем коде

  <?php /* Plugin Name: Test option page Text Domain: test-option-page */ function reg_settings(){ register_setting('pe_theme_options','pe_theme_options'); add_settings_section('pe_main_settings','Main Settings', '', __FILE__); add_settings_field('pe_bannar_heading', 'Bannar Heading:', 'pe_bannar_heading_setting', __FILE__, 'pe_main_settings'); } add_action('admin_init','reg_settings'); function pe_bannar_heading_setting(){ $options = get_option('pe_theme_options');?> <input name="pe_bannar_heading" type="text" value="<?php if(isset($options['pe_bannar_heading'])) echo $options['pe_bannar_heading'] ?>"/> <?php } function pe_add_menu_page(){ add_options_page('Theme Options', 'Theme Options', 'administrator', __FILE__ , 'display_options_page'); } add_action('admin_menu','pe_add_menu_page'); function display_options_page(){ $options = get_option('pe_theme_options');?> <div class="wrap"> <h2>Yellow Blog Options</h2> <form action="options.php" method="post" enctype="multipart/form-data"> <?php settings_fields('pe_theme_options'); do_settings_sections(__FILE__); submit_button( 'Save Settings' ); ?> </form> </div> <?php } 

Solutions Collecting From Web of "Страница параметров темы не сохраняет параметры"

Чтобы оставшееся значение сохранялось, вам необходимо сохранить его в соответствующий массив параметров. Для этого вы можете добавить еще одну функцию ( pe_save_settings() в этом случае), чтобы поймать pe_save_settings() формы и сохранить содержимое поля. Вот полный рабочий код:

 <?php /* Plugin Name: Test option page Text Domain: test-option-page */ function reg_settings(){ register_setting('pe_theme_options','pe_theme_options_item'); add_settings_section('pe_main_settings','Main Settings', '', __FILE__); add_settings_field('pe_bannar_heading', 'Bannar Heading:', 'pe_bannar_heading_setting', __FILE__, 'pe_main_settings'); } add_action('admin_init','reg_settings'); function pe_bannar_heading_setting() { $options = get_option('pe_theme_options_array'); ?> <input id="pe_theme_options_item" name="pe_theme_options_item" type="text" value="<?php if ( isset( $options['pe_bannar_heading'] ) ) { echo $options['pe_bannar_heading']; } ?>"/> <?php } function pe_add_menu_page(){ add_options_page('Theme Options', 'Theme Options', 'administrator', __FILE__ , 'display_options_page'); } add_action('admin_menu','pe_add_menu_page'); function display_options_page() { $options = get_option('pe_theme_options_array');?> <div class="wrap"> <h2>Yellow Blog Options</h2> <form action="options.php" method="post" enctype="multipart/form-data"> <?php settings_fields('pe_theme_options'); do_settings_sections(__FILE__); submit_button( 'Save Settings', 'primary', 'pe_new_option' ); ?> </form> </div> <?php } add_action( 'admin_init', 'pe_save_settings' ); function pe_save_settings() { if ( isset( $_POST['pe_new_option'] ) ) { $new_value = trim( $_POST[ 'pe_theme_options_item'] ); $options_array = get_option('pe_theme_options_array'); $options_array['pe_bannar_heading'] = $new_value; update_option( 'pe_theme_options_array', $options_array ); } }