大家好,我在使用Wordpress网站时遇到了一些麻烦。
我正在改变网站上加载脚本的方式(异步vs同步),并对无用的脚本(多个版本的jquery等等)进行一些清除。 其中一些在标题上加载简单明了( header.php ),我已经移动了它们,其他一些加载了一个名为 wp_head();
这个函数加载了很多东西(脚本和纯文本javascript),但我无法找到它的位置...
我在那里看了 How to find HTML rendered by <?php wp_head(); ?> in WordPress? 有很多功能可以通过实例,插件和更多内容挂钩,但是如何才能找到它们呢?任何人都可以帮助我?
由于
答案 0 :(得分:3)
通常脚本挂钩在wp_enqueue_scripts
中挂钩的wp_head
挂钩中。
我的意思通常是因为不是每个开发人员都遵循这些准则。
您可以使用@Rarst已创建
的此功能检查wp_enqueue_scripts
中挂钩的功能
将它放在你的functions.php中:
/**
* A function to visually dump a hook.
*
* @param $tag
* @param $hook
*/
function cis_dump_hook($tag, $hook) {
ksort($hook->callbacks);
echo "<pre>>>>>>\t$tag<br>";
foreach ($hook->callbacks as $priority => $functions) {
echo $priority;
foreach ($functions as $function) {
if ($function['function'] != 'list_hook_details') {
echo "\t";
if(is_closure($function['function'])) {
echo "Closure: function(){}";
} else if (is_string($function['function'])) {
echo $function['function'];
} else if (is_string($function['function'][0])) {
echo $function['function'][0] . ' -> ' . $function['function'][1];
} else if (is_object($function['function'][0])) {
echo "(object) " . get_class($function['function'][0]) . ' -> ' . $function['function'][1];
} else {
print_r($function);
}
echo ' (' . $function['accepted_args'] . ') <br/>';
}
}
}
echo '</pre>';
}
function list_hooks( $filter = false ){
global $wp_filter;
$hooks = $wp_filter;
ksort( $hooks );
foreach( $hooks as $tag => $hook )
if ( false === $filter || false !== strpos( $tag, $filter ) )
dump_hook($tag, $hook);
}
并将其称为:list_hooks( 'wp_enqueue_scripts' );
我真的建议在开发环境中这样做。
这将返回隐藏在 wp_enqueue_scripts
挂钩中的函数列表。
要了解有关这些功能的更多信息,请查看帖子Debug WordPress hooks。