How can i save a WordPress checkbox array in a widget?
-
I’m writing a plugin/widget that will enable a user to pick some specific posts from a list of checkboxes returned from a WP get_posts query.
I’ve written the following code but for some reason I can’t get the checkbox values to stick – the options are either all on or all off. If I select one or more of the checkboxes, they all end up checked – I presume because they aren’t being written as an array but have no idea how I can update the separate values?
<?php /* Plugin Name: Hot Topics Plugin URI: https://www.weddingideasmag.com Description: Use this widget to choose an array of posts snippets to show Version: 1.0) Author: James Payne Author URI: https://www.bluntcreative.co.uk License: GPL2 */ // register widget add_action('widgets_init', create_function('', 'return register_widget("HotTopics");') ); class HotTopics extends WP_Widget { /////////////////////////// // Initialise the widget // /////////////////////////// function HotTopics() { $this->WP_Widget( 'hottopics', __('Hot Topics'), array( 'name' => 'Hot Topics', /*'classname' => 'widget-hot-topics',*/ 'description' => __( "Use this widget to choose an array of posts snippets to show in the sidebar." ) ) ); } /** * Outputs the content of the widget * * @param array $args * @param array $instance */ public function widget( $args, $instance ) { // outputs the content of the widget } /** * Ouputs the options form on admin * * @param array $instance The widget options */ public function form ($instance) { $instance = wp_parse_args( (array) $instance, $defaults ); // Populate the select list with the post titles $get_posts = array('1'=>'First option','2'=>'Second option','3'=>'Third option','4'=>'Fourth option','5'=>'Fifth option',); foreach( $get_posts as $post ) { ?> <p><input type="checkbox" id="<?php echo $this->get_field_id('rss'); ?>" name="<?php echo $this->get_field_name('rss'); ?>[]" <?php if ($instance['rss']) echo 'checked="checked"' ?> /> <label for="<?php echo $this->get_field_id('rss'); ?>"><?php echo $post; ?></label></p> <?php } } /** * Processing widget options on save * * @param array $new_instance The new options * @param array $old_instance The previous options */ public function update ($new_instance, $old_instance) { $instance = $old_instance; $instance['rss'] = $new_instance['rss']; return $instance; } } ?>
Viewing 1 replies (of 1 total)
Viewing 1 replies (of 1 total)
- The topic ‘How can i save a WordPress checkbox array in a widget?’ is closed to new replies.