我想创建一个wordpress插件,我发现一个使用oops概念的插件,我的问题是为什么add_action函数中的第二个参数是阵列代替函数名wordpress:add_action:为什么第二个参数是一个数组而不是函数名
ADD_ACTION( 'admin_menu',阵列(& $此, 'my_menu'));
my_menu是在同一个类中的函数,请帮我
感谢
我想创建一个wordpress插件,我发现一个使用oops概念的插件,我的问题是为什么add_action函数中的第二个参数是阵列代替函数名wordpress:add_action:为什么第二个参数是一个数组而不是函数名
ADD_ACTION( 'admin_menu',阵列(& $此, 'my_menu'));
my_menu是在同一个类中的函数,请帮我
感谢
因为第二个参数必须是一个callback。 (并且add_action
内部使用call_user_func_array
)。
对于函数,我们可以将它的名字作为字符串传递,但我们不能用对象方法来做到这一点,我们可以吗?
因此,一个数组传递2个要素,第一对象和第二的方法来调用: -
array($object, 'method')
哦,你可以安全地删除无用“&”,PHP4日子现在都没有了。
@Thomas John,你对add_action中的第二个参数也是正确的,在wordpress org中没有提到任何关于这个的东西,所以现在让我知道你,我们可以将数组作为第二个参数数组($ this,'method')。
描述: 当对象创建的类,然后构造函数自动调用和您的操作执行。
WHY它需要 在WordPress如何创建或初始化ADD_ACTION方法的类总之ADD_ACTION参照例如下面的一类检查
class Myclass{
public function __construct() {
add_action('plugins_loaded', array($this, 'load_plugin_textdomain'));
}
}
引用一个使用类ADD_ACTION()。
嗨 - 感谢您的建议。我几乎了解,但你能帮助这个例子。当我们使用value => key时,我不确定如何引用$ object:add_action('woo_main_before','woo_slider_biz',10,array( 'slide_page'=> 394, 'use_slide_page'=> true )); – raison 2014-10-14 14:07:03
我有一个常量问题,其中$对象的行为就像我使用$ this一样,而且我得到一个错误,指出使用类add_action()时没有钩住方法。我甚至创建了一个新对象,并在add_action之前传递它,但仍然无效。 – 2016-04-27 12:12:47