可以使用WP脚本/样式加载器在前端连接和gzip脚本和样式吗?


27

WP在wp-admin中包含一个不错的javascript加载器:http : //core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-scripts.php

和CSS加载器:http//core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-styles.php

我想知道是否也可以在前端使用它们,而不仅仅是admin,因为它们可以串联所有排队的脚本,并将它们作为单个gzip文件提供


这不是在有效地问“我可以在非管理页面中使用队列吗?” ..答案是肯定的。
t31os 2011年

5
@ t31os问题是您是否可以使用load-scripts.php和load-styles 串联和gzip样式和脚本,就像为管理员完成的那样。我澄清了问题的标题。
Chris_O 2011年

Answers:


12

迟来的答案

从简短的外观:

你必须使用

  • include( admin_url().'load-scripts.php' );
  • include( admin_url().'script-loader.php' );

然后跳进$GLOBALS['wp_scripts']

使用…

$wp_scripts->default_dirs( array_merge( 
     $wp_scripts->default_dirs
    ,array( '/themes/your_theme/js/' ) 
); 

…扩展它。

然后用

$wp_scripts->add( $handle, $path_from_content_dir, false/array( $deps ), $ver ) 

添加脚本。

笔记:

  1. 未压缩的脚本得到由搜索.dev.js(时SCRIPT_DEBUGTRUE)。
  2. 似乎也有可能$wp_styles
  3. 编辑:WP 3.5将更改此行为,.js并在(SCRIPT_DEBUGTRUE)时用于“ dev”版本和“ .min.js” ;

(但是我想这只有在使用插件或mu-plugin时才有效。)

它没有经过测试,我也不确定是否可行。


我目前正在尝试做这样的事情。不好的是load-scripts.php的末尾有一个exit(),因此您以后什么也不能做。
本杰明·因塔尔

这个答案实际上使我免于头疼。如果SCRIPT_DEBUGtrue,则所有脚本都像在前端一样单独排队。但是,如果SCRIPT_DEBUGfalse,则似乎同时通过来使脚本入队load-scripts.php
Michael Ecklund

@MichaelEcklund是的,此“开关” –常数连接或传送单个文件。这是从源地图发布到现在的开发人员工具时代。
kaiser

6

这是一个很好的问题,对于WordPress来说将是一个很棒的功能。

其他一些答案未解决主要问题。

我想知道是否也可以在前端使用它们,而不仅仅是admin,因为它们可以连接所有排队的脚本,并将它们作为单个gzip文件提供。

不,目前无法使用内置的脚本加载器将前端的CSS和脚本连接在一起。

几年前,在WP Hackers上对此进行了讨论,并且已经接受了此增强功能跟踪票,但将来可能会发布。


3

如果需要在前端加入CSS文件:

1)通过wp_register_style($ handle,$ src)注册样式。2)将wp_enqueue_style($ handle)挂钩到wp_print_styles挂钩中。

如果需要在前端排队脚本:

1)通过wp_register_script($ handle,$ src)注册样式。2)将wp_enqueue_script($ handle)挂钩到wp_head挂钩中。

(注意:我本希望可以使用wp_print_styles钩子,但是该钩子显然不能按预期工作。)


0

我有一些您可能希望看的脚本。

1. Combine.php- 在许多主题上,我已经实现了此脚本。它支持类似的功能,可以放到您的模板文件夹中,并且使用起来相对容易。

2. WP缩减大小 - 该插件支持涅槃,是很容易与工作。

3. W3 Total Cache- 一个非常强大的性能插件。它还支持脚本/ css组合以及大量其他功能,例如,将组合的脚本卸载到CDN。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.