Intereting Posts
Только показ the_date и the_excerpt для первой записи в get_posts Как оценить массив get_posts с is_page? Как отобразить сообщение об ошибке в защищенной паролем форме с помощью ajax jQuery? У меня на моем сайте много разных продуктов, как я могу их отображать в определенных категориях? Как найти идентификатор сайта на одном сайте, а затем добавить новое сообщение с расширением «multipart / form-data» enctype? Изменить значение shortcode с помощью jquery в редакторе WP Загрузка файла из папки wp-admin Групповые сообщения, начинающиеся с того же письма wp_upload_bits Загрузка только определенных размеров Группировать по настраиваемому значению поля (время начала и окончания) Breadcrumb, который показывает несколько пользовательских таксономий проблемы с текстом alt, не отображающимся в исходном коде Добавить дату в списке слайдера / сетки Можно ли разрешить пользователю редактировать категории сообщений и ничего больше? Pagination не работает с single-{slug} .php, но отлично работает на странице- {slug} .php

Параметры виджета не обновляются

Я создаю плагин, который создает виджет с некоторыми параметрами. Я расширил класс WP_Widget :

 class Dynamic_Player_Widget extends WP_Widget { function Dynamic_Player_Widget() { $widget_ops = array( 'classname' => 'dyn-description', 'description' => 'Plugin description' ); $control_ops = array( 'width' => 300, 'height' => 350, 'id_base' => 'dynamic-player-widget' ); $this->WP_Widget( 'dynamic_player_widget', __('Dynamic Playlist Audio Player Widget', 'description'), $widget_ops, $control_ops ); } function widget( $args, $instance ) { extract( $args ); wp_register_script( 'dynamicplayer-show', WP_PLUGIN_URL . '/dynamic/js/dynamicplayer-show.js', array( 'jquery' )); wp_localize_script( 'dynamicplayer-show', 'dynamic_options', $instance ); wp_enqueue_script( 'dynamicplayer-show' ); ?> <div class='dynamic-image dynamic-maximize'></div> <ul id="dynamic-playlist" style="margin-left:auto; margin-right:auto;"> <li mp3="" ogg="" artist="" title=""></li> </ul> <?php } //Update the widget function update( $new_instance, $old_instance ) { $instance = $old_instance; //Strip tags from title and name to remove HTML $instance['dynTotalWidth'] = strip_tags( $new_instance['dynTotalWidth'] ); $instance['dynRepeatAllEnabled'] = strip_tags( $new_instance['dynRepeatAllEnabled'] ); $instance['dynPlaylistVisible'] = strip_tags( $new_instance['dynPlaylistVisible'] ); $instance['dynPlaylistHeight'] = strip_tags( $new_instance['dynPlaylistHeight'] ); $instance['dynStoreInCookie'] = strip_tags( $new_instance['dynStoreInCookie'] );; return $instance; } function form( $instance ) { //Set up some default widget settings. $defaults = array( 'dynTotalWidth' => 'Regular', 'dynRepeatAllEnabled' => true, 'dynPlaylistHeight' => '165', 'dynPlaylistVisible' => false, 'dynStoreInCookie' => true, 'show_info' => true ); $instance = wp_parse_args( (array) $instance, $defaults ); ?> <p> <label for="<?php echo $this->get_field_id( 'dynTotalWidth' ); ?>"> <?php _e('Totlal Width', 'example'); ?> </label> <select id="<?php echo $this->get_field_id('dynTotalWidth'); ?>" name="<?php echo $this->get_field_name('dynTotalWidth'); ?>" class="widefat" style="width:100%;"> <option <?php selected( $instance['dynTotalWidth'], 'Large'); ?> value="Large">Large</option> <option <?php selected( $instance['dynTotalWidth'], 'Regular'); ?> value="Regular">Regular</option> <option <?php selected( $instance['dynTotalWidth'], 'Small'); ?> value="Small">Small</option> </select> </p> <p> <label for="<?php echo $this->get_field_id( 'dynRepeatAllEnabled' ); ?>"> <?php _e('Repeat All', 'example'); ?> </label> <select id="<?php echo $this->get_field_id('dynRepeatAllEnabled'); ?>" name="<?php echo $this->get_field_name('dynRepeatAllEnabled'); ?>" class="widefat" style="width:100%;"> <option <?php selected( $instance['dynRepeatAllEnabled'], 'true'); ?> value="true">true</option> <option <?php selected( $instance['dynRepeatAllEnabled'], 'false'); ?> value="false">false</option> </select> </p> <p> <label for="<?php echo $this->get_field_id( 'dynPlaylistVisible' ); ?>"> <?php _e('Playlist Visible', 'example'); ?> </label> <select id="<?php echo $this->get_field_id('dynPlaylistVisible'); ?>" name="<?php echo $this->get_field_name('dynPlaylistVisible'); ?>" class="widefat" style="width:100%;"> <option <?php selected( $instance['dynPlaylistVisible'], 'true'); ?> value="true">true</option> <option <?php selected( $instance['dynPlaylistVisible'], 'false'); ?> value="false">false</option> </select> </p> <p> <label for="<?php echo $this->get_field_id( 'dynPlaylistHeight' ); ?>"> <?php _e('Playlist Height', 'example'); ?> </label> <input id="<?php echo $this->get_field_id('dynPlaylistHeight'); ?>" type="number" name="<?php echo $this->get_field_name('dynPlaylistHeight'); ?>" value="<?php echo $instance['dynPlaylistHeight']; ?>" class="widefat" style="width:100%;"/> </p> <p> <label for="<?php echo $this->get_field_id( 'dynStoreInCookie' ); ?>"> <?php _e('Store in Cookie', 'example'); ?> </label> <select id="<?php echo $this->get_field_id('dynStoreInCookie'); ?>" name="<?php echo $this->get_field_name('dynStoreInCookie'); ?>" class="widefat" style="width:100%;"> <option <?php selected( $instance['dynStoreInCookie'], 'true'); ?> value="true">true</option> <option <?php selected( $instance['dynStoreInCookie'], 'false'); ?> value="false">false</option> </select> </p> <?php } } 

Этот новый класс вызывается с помощью:

 function dynamic_player_widget() { if( ! is_active_widget('Dynamic_Player_Widget') ) register_widget( 'Dynamic_Player_Widget' ); } add_action( 'widgets_init', 'dynamic_player_widget' ); 

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

Любая идея о том, что мне не хватает или что-то не так?