我在我的网站上有一些自定义小部件,我将它们定位于特定的标签。
可能存在这样一种情况,即小部件目标可能存在重叠,理想的行为可能是仅显示与该节或标记匹配的第一个小部件。
因此,当匹配发生并且要显示小部件时,我需要设置一个变量,以指示该“集合”中的其他小部件不显示任何内容。
显然,但很难做到这一点的方法是使用全局变量,但这感觉是错误的。所以我希望Wordpress的神有一个合适的WP方法来做到这一点。我说得对吗?
最合适的回答,由SO网友:s_ha_dum 整理而成
据推测,这些是您正在编写的小部件。如果是这样,基本的PHP类方法应该做到这一点——设置一个静态类属性来保存“重叠”数据。
class Foo extends WP_Widget {
static $overlap;
/*constructs etc*/
function __construct($id = \'twidg\', $descr = \'Test Widget\', $opts = array()) {
$widget_opts = array();
parent::__construct($id,$descr,$widget_opts);
/*do stuff*/
}
function widget() {
// set static::$overlap
static::$overlap .= \'something-\';
echo \'test widget :: \'.static::$overlap;
}
}
您甚至可以创建一个“父”小部件来处理所有“子”小部件的“重叠”逻辑。为此,请参见: