使用自定义插件挂接管理员中的优先级

时间:2017-03-06 作者:Abdallah Sabri

如上所述here admin\\u init是访问wordpress仪表板时触发的第一个挂钩。

但当我测试它时,我发现tgmpa_register 先触发

add_action( \'admin_init\', \'sr_admin_init\' );
add_action( \'tgmpa_register\', \'sr_register_required_plugins\' );

function sr_admin_init(){
   // I NEED THIS TO TRIGGER FIRST
    wp_die("sr_admin_init");
}

function sr_register_required_plugins(){
   // this triggers first
    wp_die("sr_register_required_plugins");
}
动作挂钩触发器:

tgmpa\\u寄存器admin\\u init:定义一些变量,如$GLOBALS[\'admin_page_hooks\']我的情况很复杂,但通常我需要使用变量$GLOBALS[\'admin_page_hooks\'] 在里面sr_register_required_plugins. 但它不起作用,因为tgmpa_register 首先触发。

我该怎么办?

1 个回复
SO网友:Paul \'Sparrow Hawk\' Biron

你网站上的食品法典条目wrong! 以前发射过很多钩子admin_init 在管理请求期间,尤其是init, 很多插件都使用它来进行初始化。

特别是TGM Plugin Activation 插件挂钩到init (默认优先级为10)使用调用do_action (\'tgmpa_register\').

因此,您需要执行以下操作:

// make sure we register this hook func with lower priority value than 
// TGM Plugin Activation does
add_action (\'init\', \'sr_admin_init\', 9) ;

function
sr_admin_init ()
{
    if (!is_admin ()) {
        return ;
        }

    // I NEED THIS TO TRIGGER FIRST
    wp_die("sr_admin_init");
}

Edit

要对您网站上的codex条目的作者更加仁慈:admin_init is 第一个“;“严格管理”-为管理员请求触发相关挂钩。这还不是第一次射门。

相关推荐

About Hooks and Filters

嗯,我很难理解动作和过滤器之间的区别。我确实在代码中使用动作,但我是一个新手,甚至连一点过滤器都不知道。我去过codex,以及NickTheGeek、BillErickson、GaryJones等的多个网站,但没有去过vein。如果你能用简单的话告诉我,并举例说明动作、过滤器和挂钩的基本内容和区别。非常感谢。