首页 文章

wp_enqueue_script in action hook wp_print_scripts

提问于
浏览
3

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

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

Do not use wp_print_scripts action 是我想要突出显示的,但是在"How to include Javscript in WordPress"上进行简单的谷歌搜索 . 您会发现大多数示例都使用 wp_print_scripts 动作来调用 wp_enqueue_script . 似乎每个人都对它好 .

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


EDIT

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

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

1 回答

  • 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一个读 . 它是完整的文件 .

    问候,

相关问题