给定一个函数" plugin_update'这将采用参数$ version,如何使用add_action方法使用以下语法将值传递给此方法(因为该方法在类中):
add_action('plugins_loaded',array('test-app-class','plugin_update'));
我尝试了几种似乎不起作用的变体。任何建议表示赞赏!
答案 0 :(得分:0)
简短回答:不。
让我解释原因。
add_action
构造允许您注册对事件的回调。在您的情况下,事件为plugins_loaded
。然后在构造do_action()
或do_action_ref_array
时触发该事件。
事件发生时会发生什么? WordPress Core执行以下操作:
传递给每个回调的参数由触发构造确定。咦? do_action()
指定是否将任何参数传递给回调。然后每个回调都可以声明它是否需要它们。
plugins_loaded
事件不传递参数。您的回调函数无法指定未从触发构造传递的参数。
换句话说,执行`do_action'的代码确定了函数可以选择接受和使用的参数。
为什么呢?因为do_action
是主要的发射机制。它说" Hello插件和主题,我现在正在运行。如果你是我的注册,那么我也会叫你tomrun。我也可能会给你发一些参数。"
如何让版本进入回调?
您有很多选择:
当你使用OOP时,我建议在实例化对象时注入它。我通常在创建对象时注入动态配置。
以下是Word代码触发do_action( 'plugins_loaded' );
的核心代码的链接:click here to view on GitHub。注意,没有声明参数,这意味着不会传递任何参数。