我希望每次以前激活任何插件时,都会调用我插件中的函数,返回(至少)插件的名称,或允许识别它的东西(文件名?)。
我想我可以使用动作挂钩“deactivated\\u plugin”,但我想知道从停用的插件中可以得到什么信息?
我希望每次以前激活任何插件时,都会调用我插件中的函数,返回(至少)插件的名称,或允许识别它的东西(文件名?)。
我想我可以使用动作挂钩“deactivated\\u plugin”,但我想知道从停用的插件中可以得到什么信息?
你可以参与行动\'deactivate_plugin\'
获取插件的基本名称和(作为第二个参数)是否在网络范围内停用。
看见wp-admin/includes/plugin.php function deactivate_plugins()
.
似乎没有插件删除的挂钩。
示例日志记录代码:
add_action( \'activated_plugin\', \'t5_plugin_logger\', 10, 2 );
add_action( \'deactivated_plugin\', \'t5_plugin_logger\', 10, 2 );
/**
* Log plugin activations and deactivations.
*
* @param string $plugin
* @param bool $network_wide
* @return void
*/
function t5_plugin_logger( $plugin, $network_wide )
{
$log_size = 20;
$log = get_option( \'t5_plugin_log\', array () );
// Remove the oldest entry.
sizeof( $log ) > $log_size and array_shift( $log );
$plugin_data = get_plugin_data( WP_PLUGIN_DIR . \'/\' . $plugin );
$date_format = get_option( \'date_format\' ) . \' · \' . get_option( \'time_format\' );
$log[] = array (
\'user\' => esc_html( wp_get_current_user()->display_name ),
\'plugin\' => $plugin_data[\'Name\'],
\'network\' => $network_wide ? \'✔\' : \'\',
\'time\' => date( $date_format, time() ),
\'action\' => \'deactivated_plugin\' === current_filter() ? \'deactivated\' : \'activated\'
);
update_option( \'t5_plugin_log\', $log );
}
现在,每个插件的激活或停用都将添加到日志选项字段。您可以在任何地方使用此数据。我制作了一个小的仪表板小部件:从GitHub下载插件:T5 Plugin Log
我是updating the codex page example for action hooks, 在游戏中完成一些可重用的功能(最初是针对这里的一些Q@WA)。但后来我遇到了一个以前没有意识到的问题:在挂接到一个函数以修改变量的输出后,我再也无法决定是要回显输出还是只返回它。The Problem: 我可以修改传递给do_action 用回调函数钩住。使用变量修改/添加的所有内容仅在回调函数中可用,但在do_action 在原始函数内部调用。很高兴:我将其修改为一个工作示例,因此您可以将其复制/粘贴