在小部件之间共享数据的正确方式是什么?

时间:2014-03-04 作者:gravy

我在我的网站上有一些自定义小部件,我将它们定位于特定的标签。

可能存在这样一种情况,即小部件目标可能存在重叠,理想的行为可能是仅显示与该节或标记匹配的第一个小部件。

因此,当匹配发生并且要显示小部件时,我需要设置一个变量,以指示该“集合”中的其他小部件不显示任何内容。

显然,但很难做到这一点的方法是使用全局变量,但这感觉是错误的。所以我希望Wordpress的神有一个合适的WP方法来做到这一点。我说得对吗?

1 个回复
最合适的回答,由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;
  }
}
您甚至可以创建一个“父”小部件来处理所有“子”小部件的“重叠”逻辑。为此,请参见:

结束

相关推荐

Reorder dashboard widgets

我最近试图通过编写插件对仪表板小部件进行重新排序。我做到了这一点:使用以下代码:<?php /* * Plugin Name: Custom Dashboard * Description: Custom dashboard for Avare sites. * Author: Avare * Version: 1.0 */ function sort_dashboard_widgets() { $lef