到debug a hook 查看相关的操作和筛选器。它们列在中$GLOBALS[\'wp_filter\']
.
调试插件示例
<?php # -*- coding: utf-8 -*-
/**
* Plugin Name: T5 Debug Hook
* Description: Adds a list of registered filters and action for a hook. Call a page with <code>?hook=NAME</code> to see it.
*/
add_action( \'shutdown\', \'t5_debug_hook\' );
function t5_debug_hook()
{
if ( ! isset ( $_GET[\'hook\'] ) or ! current_user_can( \'update_core\') )
{
return;
}
$f = $GLOBALS[\'wp_filter\'];
if ( ! isset ( $f[ $_GET[\'hook\'] ] ) )
{
print \'Nothing found for \' . esc_html( $_GET[\'hook\'] );
return;
}
print \'<pre>\' . esc_html( var_export( $f[ $_GET[\'hook\'] ], TRUE ) ) . \'</pre>\';
}
的样本输出example.com/?hook=wp_footer
array (
20 =>
array (
\'wp_print_footer_scripts\' =>
array (
\'function\' => \'wp_print_footer_scripts\',
\'accepted_args\' => 1,
),
),
1000 =>
array (
\'wp_admin_bar_render\' =>
array (
\'function\' => \'wp_admin_bar_render\',
\'accepted_args\' => 1,
),
),
)
数字(
20
和
1000
此处)代表优先权或执行顺序。
现在,您可以停用单个操作和筛选器,直到找到最慢的操作和筛选器。
remove_action( \'wp_footer\', \'wp_admin_bar_render\', 1000 );
…将停用最后一个功能。
你的网站对我来说呈现得很好,所以我猜这是管理栏或是只为登录用户加载的脚本。