我正在尝试创建自己的小部件。但我发现这并不容易。我正在尝试设置默认值,但我不知道如何做到这一点。
是的,我用Google搜索了很多。我差不多尝试一周来获得自己的选项页面和自定义小部件,但我没有成功。
回到我的问题,现在这是我的代码:
class Superdeal_Widget extends WP_Widget {
public function __construct()
{
parent::__construct(
'Superdeal-widget',
'Superdeal Widget',
array(
'description' => 'Superdeal widget'
),
array (
'width' => 400,
'height' => 350
)
);
}
public function widget( $args, $instance )
{
// basic output just for this example
echo '<p><a href="'.$instance['url'].'">'.$instance['titel'].' '.$instance['superdeal'].'</a></p>';
}
public function form( $instance )
{
// removed the for loop, you can create new instances of the widget instead
?>
<p>
<label for="<?php echo $this->get_field_id('titel'); ?>">Titel</label><br />
<input type="text" name="<?php echo $this->get_field_name('titel'); ?>" id="<?php echo $this->get_field_id('titel'); ?>-title" value="<?php echo $instance['titel']; ?>" class="widefat" />
</p>
<p>
<label for="<?php echo $this->get_field_id('url'); ?>">Url</label><br />
<input type="text" name="<?php echo $this->get_field_name('url'); ?>" id="<?php echo $this->get_field_id('url'); ?>-url" value="<?php echo $instance['url']; ?>" class="widefat" />
</p>
<p>
<label for="<?php echo $this->get_field_id('superdeal'); ?>">Superdeal tekst</label><br />
<input type="text" name="<?php echo $this->get_field_name('superdeal'); ?>" id="<?php echo $this->get_field_id('superdeal'); ?>-title" value="<?php echo $instance['superdeal']; ?>" class="widefat" />
</p>
<?php
}
}
// end class
// init the widget
add_action( 'widgets_init', create_function('', 'return register_widget("Superdeal_Widget");') );
PS:如果你知道一个很好的教程,展示如何让你自己的选项页面/声明属性/制作自定义小部件,我很乐意听取你的意见。因为我所遵循的所有教程都陈旧,模糊或过于复杂。
谢谢你们!
答案 0 :(得分:5)
这可以帮助您→widget tutorial
注意这一行来自form()函数
$ instance = wp_parse_args((array)$ instance,array('title'=&gt;'DEFAULT_VALUE_HERE'));
您可以添加多个实例,例如array( 'title' => 'DEFAULT_VALUE_HERE', 'name' => 'DEFAULT_VALUE_HERE' )
希望这会帮助你前进。