如何获取所有的激活插件动作参数?

时间:2011-02-01 作者:AmberKayle

我正在尝试挂接activate\\u插件。

我知道activate\\u插件有1个必需参数和2个可选参数。我正在尝试获得全部3个。

以下是我的设置:

// create plugin settings menu
add_action(\'admin_menu\', \'pe_create_menu\');


function pe_create_menu() {

  //create new sub-level menu
  add_submenu_page( \'plugins.php\', \'Plugin Settings\', \'Plugin Enabler\', \'administrator\', __FILE__, \'pe_settings_page\' );

  // Add my hook
  add_action( \'activate_plugin\', \'pe_network_activate\', 10, 3 );
}
和我的功能:

function pe_network_activate( $plugin, $redirect = \'\', $network_wide = false ) {
  $args = var_export( func_get_args(), true);
  _log("Args: " . $args); // write to the WP error_log
}
$args仅返回第一个参数。如何获得全部3个?

我的目标是能够知道插件何时被网络激活,或者只是正常激活-因此需要$network\\u-wide。

2 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

The activate_plugin() function 接受三个参数,但它发出activate_plugin 仅使用一个参数的操作。这可能会让人困惑,但钩子有时使用与它们来自的函数相同的名称,而不传递相同的参数。

获取网络激活和常规激活之间差异的一种方法是监视update_site_optionupdate_option 挂钩。其中只有一个会开火,这取决于$network_wide 的参数activate_plugin().

SO网友:Rarst

你需要什么var_export() 对于func_get_args() 应该单独为您提供参数数组。

结束

相关推荐

How do you debug plugins?

我对插件创作还很陌生,调试也很困难。我用了很多echo,它又脏又丑。我确信有更好的方法可以做到这一点,也许是一个带有调试器的IDE,我可以在其中运行整个站点,包括插件?