Php 如何在add#u操作(';init';,';method';)中使用className::method()/array(';className';,';method';)

Php 如何在add#u操作(';init';,';method';)中使用className::method()/array(';className';,';method';),php,wordpress,plugins,Php,Wordpress,Plugins,我是WP的新手,仍然需要学习更多的概念、良好的实践和功能。此外,我的英语不是很好。所以,放松点:P 当我尝试开发自己的插件时,我遇到了add_action('init','')(还不确定)的问题。这是我的班级(名为MeuPlugin): 然后我用 $pluginFile = substr(strrchr(dirname(__FILE__),DIRECTORY_SEPARATOR),1).DIRECTORY_SEPARATOR.basename(__FILE__); register_activ

我是WP的新手,仍然需要学习更多的概念、良好的实践和功能。此外,我的英语不是很好。所以,放松点:P

当我尝试开发自己的插件时,我遇到了
add_action('init','')
(还不确定)的问题。这是我的班级(名为MeuPlugin):

然后我用

$pluginFile = substr(strrchr(dirname(__FILE__),DIRECTORY_SEPARATOR),1).DIRECTORY_SEPARATOR.basename(__FILE__);

register_activation_hook($pluginFile, array('MeuPlugin', 'install'));

add_filter('init', array('MeuPlugin', 'initialize'));
“运行”我的插件

我的问题:为什么
add_action('init',array('MeuPlugin','newslettesposttype')(“行”7)不起作用,而
添加操作('admin_menu',数组('MeuPlugin','addMenu')(“行”8)有什么作用

注意:当我使用
add_action('init',MeuPlugin::newslettesposttype())时(“行”6)而不是
添加操作('init',数组('MeuPlugin','newslettesposttype')(“行”7),工作正常。为什么我必须放置
className::method()
而不是
数组('className','method')

我希望我已经说清楚了。谢谢

Hi“添加动作”功能定义如下:

function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
    return add_filter($tag, $function_to_add, $priority, $accepted_args);
}
第一个参数是字符串; 第二个参数是对函数的引用,而不是您试图使用的数组

 array('MeuPlugin', 'newslettersPostType')
目前我无法解释为什么第8行:

add_action('admin_menu', array('MeuPlugin', 'addMenu'));
正在工作。。。。。“添加操作”功能定义如下,它不应出现在该功能中:

function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
    return add_filter($tag, $function_to_add, $priority, $accepted_args);
}
第一个参数是字符串; 第二个参数是对函数的引用,而不是您试图使用的数组

 array('MeuPlugin', 'newslettersPostType')
目前我无法解释为什么第8行:

add_action('admin_menu', array('MeuPlugin', 'addMenu'));

正在工作。。。。。不应该

我想这会回答你的问题question@Laurentiu我仍然不明白为什么
add_action('init',array('MeuPlugin','newslettespostType'))
不起作用,而
add_action('admin_menu',array('MeuPlugin','addMenu'))不起作用。这些不是“同一件事”?我错过什么了吗?谢谢。我想这会回答你的问题question@Laurentiu我仍然不明白为什么
add_action('init',array('MeuPlugin','newslettespostType'))
不起作用,而
add_action('admin_menu',array('MeuPlugin','addMenu'))不起作用。这些不是“同一件事”?我错过什么了吗?谢谢,谢谢回复!我认为
array('MeuPlugin','newslettesposttype')
也可以像回调函数一样工作,但可以用作数组。请参见我的例子,使用
//类型2:静态类方法调用\u user\u func(数组('MyClass','myCallbackMethod')感谢您的回复!我认为
array('MeuPlugin','newslettesposttype')
也可以像回调函数一样工作,但可以用作数组。请参见我的例子,使用
//类型2:静态类方法调用\u user\u func(数组('MyClass','myCallbackMethod')