这个实例变量在小部件类中有什么作用

时间:2012-10-18 作者:Lucky Luke

缺少WP\\u Widget类的文档让我抓狂。以下是我从抄本中抢救出来的:

    public function form($instance){
        ?>

        <label for="<?php echo $this->get_field_id(\'title\'); ?>">Title: 
        <input type="text" name="<?php echo $this->get_field_name(\'title\'); ?>" value="<?php echo $instance[\'title\']; ?>" id="<?php echo $this->get_field_id(\'title\'); ?>" />
        </label>

        <?php
    }
这是什么$instance 变量医生说是的The settings for the particular instance of the widget. 但为什么它不只是$this. 为什么$this->get_field_name(\'title\') 似乎对一个头衔有所了解,突然间,当我们想要这个该死的头衔时,我不得不开始讨论这个instance 变量我错过了什么。

你能解释一下$title 被扣留了,怎么回事$instance 不同于$this 为什么我们要使用标题来获取字段名?

感谢您的支持!

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

$instance 将此小部件实例存储的数据保存为数组。您可以多次使用同一个小部件,每个小部件将获得不同的数据。

get_field_name()get_field_id() 返回该小部件的名称/id属性。它们对于每个小部件都是唯一的,但不依赖于数据。这就是为什么他们不必知道$instance:

function get_field_name($field_name) {
    return \'widget-\' . $this->id_base . \'[\' . $this->number . \'][\' . $field_name . \']\';
}

结束

相关推荐

Widgets in PHP files?

有没有可能让Wordpress上的每个小部件都以不同的方式运行。php文件我有一个包含12个元素的页面,我想让每个元素都成为一个小部件,以便以后更容易管理/编辑它们,但如果它来自php页面,而不是来自管理面板上的代码块,则会更好。