我正在尝试学习WordPress的Widgets API并创建自己的Widget。
问题:当我尝试回显$ instance [‘platform’]时, 什么也没出现。
我希望能够获得价值。
class Practice_Widget extends WP_Widget
{
function __construct()
{
$widget_ops = array(
'classname' => 'my-widget', 'description' => 'Second Widget'
);
parent::__construct('my_little_widget', 'Practice Second', $widget_ops);
}
public function widget($args, $instance)
{
echo $args['before_widget'];
echo $instance['platform'];
echo $args['after_widget'];
}
public function form ($instance)
{
?>
<p>
<label for = "<?php echo esc_attr($this->get_field_id('title')); ?>">
Title:
</label>
<select name="<?php echo esc_attr($this->get_field_name('platform')); ?>)">
<option value="face">Facebook</option>
<option value="insta">Instagram</option>
</select>
</p>
<?php
}
public function update ($new_instance, $old_instance)
{
$instance = array();
$instance['platform'] = ! empty($new_instance['platform']) ? $new_instance['platform'] : '';
}
}
#1
你的update()函数需要返回$ instance数组, 否则WordPress将无法保存新值(因此, 你在前端看不到任何内容的原因):
public function update ($new_instance, $old_instance)
{
$instance = array();
$instance['platform'] = ! empty($new_instance['platform']) ? $new_instance['platform'] : '';
return $instance;
}
有关更多详细信息, 请参见Widgets API文档。
评论前必须登录!
注册