由于wp_footer(),在加载网站之前延迟了很长时间

时间:2012-05-08 作者:Zihad

这听起来可能很奇怪,但这就是我的网站真正发生的事情。虽然在我的站点开始加载之前就投入了长时间的延迟,但在搜索了问题的根源很长时间后,我发现如果我从页脚模板中删除wp\\u footer(),站点将正常加载。即使我停用所有插件并尝试加载站点,并在模板中保留wp\\u footer(),也会出现这种延迟。您可以在我的网站上看到:http://www.vps.cadetcollegeblog.com

如果有人告诉我这种奇怪行为的原因并帮助解决它,我将不胜感激。提前谢谢。

1 个回复
SO网友:fuxia

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,
    ),
  ),
)
数字(201000 此处)代表优先权或执行顺序。

现在,您可以停用单个操作和筛选器,直到找到最慢的操作和筛选器。

remove_action( \'wp_footer\', \'wp_admin_bar_render\', 1000 );
…将停用最后一个功能。

你的网站对我来说呈现得很好,所以我猜这是管理栏或是只为登录用户加载的脚本。

结束

相关推荐