wp_enqueue_script in action hook wp_print_scripts

时间:2011-07-21 07:23:41

标签: wordpress

在函数wp_enqueue_script的WordPress文档页面中,清楚地写了:

  

注意:如果从wp_head操作调用此函数,则此函数将无效,因为在wp_head运行之前输出标记。相反,从init动作函数调用wp_enqueue_script(在所有页面中加载它),template_redirect(仅在公共页面中加载它)或admin_print_scripts(仅用于管理页面)。 请勿使用wp_print_scripts(请参阅此处获取解释)

不要使用wp_print_scripts操作是我想要突出显示的内容,而是对“如何在WordPress中包含Javscript”进行简单的谷歌搜索。您会发现大多数示例都使用 wp_print_scripts 操作来调用 wp_enqueue_script 。似乎每个人都对它好。

我在这里错过或误解了什么?


修改

该手抄本已被修改。它现在说:

  

如果从wp_head或wp_print_scripts操作调用此函数,则此函数将无效,因为在运行这些操作之前需要将文件排入队列。有关要使用的正确挂钩,请参阅“用法”部分。

1 个答案:

答案 0 :(得分:2)

是的,我去过很多次。简短的回答是那些打印脚本请求的人都是错误的,或者有些人建议不要使用wp_enqueue_script,而是用Modernizr.loadyesnope.js)或任何其他js加载器lib动态加载所有内容。

我的建议是坚持使用wp_enqueue_script作为最佳实践,但如果您正在为移动设备开发主题,或者您非常担心速度而不是请求浏览器膨胀,我真的建议加载所有内容动态地使用单个js文件(您可以使用wp_enqueue_script调用)。甚至考虑内联所有内容而不是加载jQuery但是zepto.js左右。

许多开发人员做了这种加载打印所有内容的可怕做法,不仅味道不好,而且对于经验丰富的主题开发人员来说,我可能会说:S很糟糕

例如,专题和其他几个空白主题依赖于这种做法,这会削弱子主题的开发速度。

如果你不确定wp_enqueue_script,只需给wordpress codex一个读取。这是完整的记录。

此致