Widget对象和Widget实例有什么区别?

时间:2017-01-26 作者:Live Seven

我是wordpress的新手,并根据教程创建了一个新的小部件。我注意到在某些情况下$instance 使用变量,并且在某些情况下$this 已使用。喜欢

$instance[\'title\']

$this->get_field_id( \'title\' )
我知道第一行返回标题值,第二行返回字段的id。但事实并非如此$this 表示类的实例化对象?为什么我必须使用$instance 变量也是?我们不能使用$this 获取标题value widget的?

1 个回复
SO网友:JHoffmann

这个WP_Widget 类可能有点混淆,因为它的对象实例(必须使用子类)并不表示小部件的特定实例。处理这个小部件类的所有实例更像是一个对象。

$instance 是在WP\\u Widget类中重复使用的变量(因此也在所有子类中)。它实际上并不包含对php对象实例的引用。相反,它只是一个带有WordPress小部件化身设置的数组。此数组()保存到DB中并再次检索,以便能够保存不同小部件的设置。

$this 是一个伪变量,它引用小部件类的当前实例化。因此,这实际上是对php对象实例的引用,但不是针对特定的小部件实例。

相关推荐

Displaying Widgets

在主题开发期间,我了解如何在functions.php 文件然而,当谈到在主题中显示小部件时,是否有一种首选的方式来显示它们-primary,使用the_widget() 功能与dynamic_sidebar() 作用