Выпадающий список WordPress в виджетах

Хорошо, я разрабатываю свой собственный виджет, и у меня ОГРОМНАЯ проблема.

Я не знаю, как извлечь и в конечном итоге сохранить html.

Простой пример:

/* initialize TITLE */ function widget( $args, $instance ) { extract( $args ); $title = apply_filters('widget_title', $instance['title'] ); (...) /* update code for TITLE */ function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = strip_tags( $new_instance['title'] ); (...) /* creating TITLE field in widgets admin area */ <p> <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e('Title:', 'hybrid'); ?></label> <input id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" type="text" style="width:100%;" /> </p> (...) 

ОК. Теперь, когда я печатаю

 <?php echo $instance['title'] ?> 

Это покажет мой титул!

Но у меня есть этот список:

 <label for="<?php echo $this->get_field_id( 'example' ); ?> "><?php _e('Map type:', 'example'); ?></label> <select id="<?php echo $this->get_field_id( 'example' ); ?>" name="<?php echo $this->get_field_id( 'example' ); ?>"> <option value="supervalue" selected="selected">Super Value</option> </select> 

А также

 <?php echo $instance['example'] ?> 

Не дает НИЧЕГО. Я искал всюду, включая default-widgets.php, но я не понимаю ни слова, поскольку все плагины по умолчанию используют в основном динамически сгенерированные списки опций.

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

Есть идеи? Я провел весь день на этом, безумно безумно медленно.

[Редактировать]

Я не показывал вам функцию обновления, потому что, как я упоминал выше, я использую один и тот же код обновления для каждой функции.

  function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['example'] = strip_tags( $new_instance['example'] ); return $instance; } 

Solutions Collecting From Web of "Выпадающий список WordPress в виджетах"

См. Мой комментарий выше … вы используете get_field_id() для атрибута name, где должно быть get_field_name() .

get_field_id() возвращает 'widget-'.$this->id_base.'-'.$this->number.'-'.$field_name ,
в то время как
get_field_name() возвращает 'widget-'.$this->id_base.'[' . $this->number . '][' . $field_name.']' 'widget-'.$this->id_base.'[' . $this->number . '][' . $field_name.']'

Недавно я написал статью о коробках выбора wordpress на бэкэнд, это может помочь некоторым из вас:

http://wp-dreams.com/wordpress-widget-select-box/