获取脚本/样式列表并显示将它们排入队列的文件

时间:2014-07-04 作者:raison

我想显示页面上加载了哪些脚本和样式,以及哪些插件/主题/文件将它们添加到页面中。

我们可以使用以下方式显示所有脚本和样式:

<?php
  global $wp_scripts, $wp_styles;
  var_dump( $wp_scripts );
  var_dump( $wp_styles );
?>
或者更优雅地使用以下答案:How do I get the $handle for all enqueued scripts?

我现在想知道他们在哪里排队。例如,如果我有一个名为foobar的JS文件。它被插件/organge/orange排队。php我希望将此文件位置与脚本一起输出。

这是为了开发,以帮助隔离正在加载的内容。

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

这不可能是你想的那样。如果您使用Reflectionsdebug_backtrace(), 但没有可靠的方法可以做到这一点。WordPress不在跟踪文件名的位置保留堆栈或队列。

我能想象到的唯一的事情就是在行动和内心wp_enqueue_scripts():

wp_enqueue_scripts
并在那里附加附加回调的跟踪机制。请注意s 并且这不是用于将脚本附加到堆栈的函数。

<?php
/** Plugin Name: (WPSE #152658) Script Loader Callback Inspector */
add_action( \'wp_enqueue_scripts\', function()
{
    var_dump( $GLOBALS[\'wp_filter\'][ current_filter() ] );
}, PHP_INT_MAX -1 );
这将为您留下一个包含所有附加回调的队列。然后,您可以使用IDE跟踪它们。

SO网友:Creative Choice

我用的是这样的东西

 foreach( $wp_scripts->queue as $handle ) :
         $obj = $wp_scripts->registered [$handle];
         $filename = $obj->src;

结束

相关推荐

Some ways to debug code

我有一个BuddyPress安装,有许多自定义代码。在我将数据库移动到共享主机之前,我已经为生产做好了一切准备。问题是,在奇怪的地方,所有的活动wp_bp_activity 已删除。我并不是说这个问题的出现是因为我移动了数据库,但我无法用我的原始安装重现这个错误(但当我在本地计算机上完成托管数据库的新安装时,也遇到了同样的问题)我的详细信息:1) 我不相信这个DELETE 使用buddypress本机代码触发,因为所有内容都保持原样wp_bp_activity_meta.2) 我无法复制这个bug,也无法