在挂钩函数之间存储状态

时间:2013-09-11 作者:Larry K

我有两个连接到插件的函数。这两个函数都是在服务器创建单个页面的过程中(在不同的时间)调用的。

我想在function\\u a中设置一个可由function\\u b读取的标志。

Question: Is there any problem with just declaring my flag in the global scope? Is there a preferred WP-style for doing this?

另外,我意识到,当function\\u b读取标志时,我需要采取防御措施——确保显式设置了值,等等。

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

为插件使用OOP非常简单。

class MyPlugin {

    static $flag;

    static function function_a() {
      self::$flag = \'a value\';
    }

    static function function_b() {
      if ( ! is_null(self::$flag) ) echo self::$flag; // echo \'A Value\';
    }

}

add_action(\'plugins_loaded\', array(\'MyPlugin\', \'function_a\') );
add_action(\'init\', array(\'MyPlugin\', \'function_b\') );
不使用您可以使用的OOPglobal 变量。

function function_a() {
  global $myflag;
  $myflag = \'a value\';
}

function function_b() {
  global $myflag;
  if ( ! is_null($myflag) ) echo $myflag; // echo \'A Value\';
}

add_action(\'plugins_loaded\', \'function_a\' );
add_action(\'init\', \'function_b\' );
这很有效,看起来也很容易,但第一个解决方案肯定更好。

结束

相关推荐

Using Variables in Shortcodes

我正在尝试创建一个短代码来显示团队之间的得分。我已经做到了这一点,但我似乎无法将变量引入到这该死的事情中。我认为数组用于此,但显然它不是这样工作的。 function get_gamecentre($atts, $content = null) { extract(shortcode_atts(array( \"HOME-IMG\" => \'\', \"AWAY-IMG\" => \'\',