wordpress:add_action:为什么第二个参数是数组而不是函数名

发布于 2024-11-11 06:12:22 字数 226 浏览 0 评论 0原文

我正在尝试创建一个 wordpress 插件,我发现一个使用 oops 概念的插件,我的问题是为什么 add_action 函数中的第二个参数是数组而不是函数名称

add_action('admin_menu', array(&$this, '我的菜单'));

my_menu 是同一个类中的一个函数,请帮助我,

谢谢

I am trying to create a wordpress plugin, I found one plugin which use oops concepts, my question is why the second parameter in the add_action function is an array instead of a function name

add_action('admin_menu', array(&$this,
'my_menu'));

my_menu is a function in the same class, please help me

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

猥琐帝 2024-11-18 06:12:22

因为第二个参数必须是 callback< /a>. (并且 add_action 内部使用 call_user_func_array)。

对于函数,我们可以将其名称作为字符串传递,但我们不能使用对象方法来做到这一点,不是吗?

因此,一个数组传递了 2 个元素,第一个是对象,第二个是要调用的方法:-

array( $object, 'method' )

哦,你可以安全地删除那个无用的 '&',PHP4现在日子已经过去了。

Because the second argument needs to be a callback. (and add_action internally uses call_user_func_array).

For functions we can just pass its name as a string but we can't do that with object methods, can we?

So an array is passed with 2 elements, first the object and second the method to call:-

array( $object, 'method' )

Oh and you can safely remove that useless '&', PHP4 days are gone now.

小嗷兮 2024-11-18 06:12:22

@Thomas John,您对 add_action 中第二个参数的看法是正确的,在 wordpress org 中也没有提到任何有关此的内容,所以现在让我知道您,我们可以将数组作为第二个参数数组传递($this,'method')。

描述:
当对象创建类时,构造函数会自动调用并执行您的操作。

为什么需要
在wordpress中,如何在add_action方法中创建或初始化类,简而言之,add_action引用一个类,检查下面的示例,

class Myclass{
 public function __construct() {


add_action( 'plugins_loaded', array( $this, 'load_plugin_textdomain' ) );

}
}

使用add_action()引用一个类。

@Thomas John, you are correct about second argument in add_action also in wordpress org not mentioned anything about this so now, let me know you, we can pass array as second argument array($this,'method').

Description:
when object creates of class then constructor automatically calls and your action performs.

WHY IT REQUIRES
in wordpress how to create or initialize the class in add_action method in short add_action referencing a class check below example

class Myclass{
 public function __construct() {


add_action( 'plugins_loaded', array( $this, 'load_plugin_textdomain' ) );

}
}

Referencing a class using add_action().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文