我正在尝试创建一个小部件,使用户能够选择将显示哪些类别。以下是我创建的一段代码,但无法保存复选框状态的更改。只有两个值:所选类别的标题和列表。
function form($instance) {
$instance = (array)$instance;
if( empty($instance['title']) ) $instance['title'] = 'Category';
$selected_categories = (array)$instance['category'];
var_dump($selected_categories);
....
$categories = get_categories( array('exclude'=> 1) );
foreach($categories as $category) : ?>
<div>
<input type="checkbox" name="<?php echo $this->get_field_name('category'); ?>"
value="<?php echo $category->cat_ID; ?>"
<?php echo $category->cat_name; ?>
</div>
<?php endforeach; ?>
}
function update($new_instance, $old_instance) {
$instance = $old_instance;
$instance['title'] = strip_tags($new_instance['title']);
$instance['category'] = $new_instance['category'];
return $instance;
}
我通过 var_dump($selected_categories) 观察变化。该值始终为 array(size=0) 忽略我检查了多少复选框。
我不知道如何在 $instance 变量中传递数组。
提前致谢。