我正在使用自定义小部件创建 wordpress 主题,所以我想制作一个带有 3 个单选按钮的示例小部件,到目前为止一切都很好,但是 update() 函数不能很好地工作这里是我的代码:
function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance['default-image'] = strip_tags($new_instance['default-image']);
$instance['post-image'] = strip_tags($new_instance['post-image']);
$instance['link-image'] = strip_tags($new_instance['link-image']);
return $instance;
}
function form( $instance ) {
$defaults = array('default-image' => true, 'post-image' => false, 'link-image' => false );
$instance = wp_parse_args( (array) $instance, $defaults );
?>
<p>
<input name="option" type="radio" <?php checked($instance['default-image']); ?> id="<?php echo $this->get_field_id('default-image'); ?>"/>
<label for="<?php echo $this->get_field_id( 'default-image' ); ?>"><?php _e('Default image'); ?></label>
</p>
<p>
<input name="option" type="radio" <?php checked( $instance['post-image']); ?> id="<?php echo $this->get_field_id('post-image'); ?>" />
<label for="<?php echo $this->get_field_id( 'post-image' ); ?>"><?php _e('First post image'); ?></label>
</p>
<p>
<input name="option" type="radio" <?php checked( $instance['link-image']); ?> id="<?php echo $this->get_field_id('link-image') ?>" />
<label for="<?php echo $this->get_field_id( 'link-image' ); ?>"><?php _e('Image from link'); ?></label>
</p>
我将在 widget() 中为它们提供 $instance['default-image']、$instance['post-image']、$instance['link-image'],但现在在“保存”按钮或(刷新在管理页面上)选定的选项消失。如果有人能告诉我我错在哪里,我将不胜感激。