Wordpress widget personalizado recordar múltiples opciones de selección
Estoy escribiendo un widget personalizado para nuestro sitio para mostrar algunas publicaciones elegidas. En la parte de administración, tengo un cuadro de selección múltiple para permitir que el administrador elija varias publicaciones por su nombre. Esto funciona bien, pero cuando selecciono algunas publicaciones diferentes y guardo, no se guarda nada.
¿Alguien puede aclarar esto?
Aquí está mi código ...
<?php
/*
Plugin Name: Hot Topics
Plugin URI: http://www.weddingideasmag.com
Description: Use this widget to choose an array of posts snippets to show
Version: 1.0)
Author: James Payne
Author URI: http://www.bluntcreative.co.uk
License: GPL2
*/
class HotTopics extends WP_Widget {
// constructor
function HotTopics() {
$widget_ops = array( 'name' => 'Hot Topics','classname' => 'widget-hot-topics', 'description' => __( "Use this widget to choose an array of posts snippets to show in the sidebar." ) );
$this->WP_Widget( 'hottopics', __('Hot Topics'), $widget_ops);
}
// widget form creation
function form($instance) {
// Check values
if( $instance) {
$select = esc_attr($instance['select']); // Added
} else {
$select ='';
}
?>
<select multiple="multiple" name="<?php echo $this->get_field_name('select'); ?>[]" id="<?php echo $this->get_field_id('select'); ?>" class="widefat" size="15" style="margin-bottom:15px;">
<?php
$args = array( 'offset'=> 1, 'orderby' => 'date', 'order' => 'DESC', 'posts_per_page' => 200, 'post_status' => 'publish' );
// The Query
query_posts( $args );
// The Loop
while ( have_posts() ) : the_post();
$title = get_the_title();
?>
<option value="<?php echo get_the_ID();?>" class="hot-topic" <?php $select == $title ? ' selected="selected"' : '';?> style="margin-bottom:3px;">
<?php echo $title;?>
</option>
<?php
endwhile;
// Reset Query
wp_reset_query();
?>
</select>
<?php
}
// update widget
function update($new_instance, $old_instance) {
$instance = $old_instance;
// Fields
$instance['select'] = strip_tags($new_instance['select']);
return $instance;
}
// widget display
function widget($args, $instance) {
/* ... */
echo 'tetst';
}
}
// register widget
add_action('widgets_init', create_function('', 'return register_widget("HotTopics");'));
?>