知道哪个插件在wp_head()中调用JS吗?

时间:2011-03-14 作者:Jonathan

我正在尝试优化我的标题,我想知道哪个插件会调用jquery。有没有调试工具可以知道哪个插件在标题中做什么?

谢谢

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

插件和主题倾向于使用wp_enqueue_script() 要对脚本进行排队<head /> 你的主题。

我很少建议这样做,但因为您只需要临时执行,所以可以修改WordPress core,并对该函数的每次调用运行调试回溯。

在里面wp-includes/functions.wp-scripts.php, 将以下代码放在wp_enqueue_script() 函数(从第96行开始)。

global $_script_callers_backtrace;
if ( !$_script_callers_backtrace )
    $_script_callers_backtrace = array();

$backtrace = debug_backtrace();
$_script_callers_backtrace[] = array( $handle, $backtrace[0][\'file\'] );
现在在主题中弹出以下内容functions.php;

function __save_script_callers()
{
    file_put_contents( WP_CONTENT_DIR . \'/callers.\' . date(\'d-m-Y-H-i-s\')  . \'.log\', print_r( $GLOBALS[\'_script_callers_backtrace\'], true ) ); 
}
add_action( \'shutdown\', \'__save_script_callers\' );
现在,每当你在网站上加载一个页面时,就会在WordPress中生成一个日志wp-content 文件夹,其中将包含脚本处理程序和触发它们的文件的列表。

Remember! 一旦你发现你需要什么,就撤销这些更改!

SO网友:scribu

有一个漂亮的小函数debug_filters() 它列出了在某个挂钩上注册的回调。

您可以从标题末尾的主题调用。php文件,例如:

<?php debug_filters(\'wp_head\'); ?>

结束

相关推荐

How do you debug plugins?

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