在前端和后端注册和/或排队
脚本和样式
?
问题:
哪个是正确的钩子?
init
中的所有前端寄存器/队列脚本/样式是什么?为什么没有
admin_print_styles-{xxx}
吗?#1 楼
为什么正确注册和排队很重要应该及时-早于脚本/样式输出到页面,否则为时已晚;
应该及时有条件的-否则,您将在不需要的地方加载东西,并导致性能和功能问题,为此,您需要将WP环境加载到后期。
过程的三个阶段
注册-解释WP有关脚本/样式的详细信息并使其存储该信息;
入队-(通常与qq120120q调用中的寄存器一起使用)-告诉WP添加脚本/
print-当WP处理队列,尝试加载特定于其自身的内容或使用
wp_enqueue_*()
函数显式地执行此操作时,会发生这种情况。 /> 功能和挂钩的前端结构
wp_print_*()
wp_head()
(1)
wp_head
wp_enqueue_scripts()
«这就是您需要的(8)
wp_enqueue_scripts
(9)
wp_print_styles()
wp_print_head_scripts()
wp_footer()
(10)
wp_footer
它会更深入,但这对于重点很简单并且足够好:
wp_print_footer_scripts()
是最适合在前端注册和排队脚本和样式的钩子,它专门为此而设计; wp_enqueue_scripts
与这无关,它可以工作,但是-过去的法典建议使用只是不正确; 您可以在
init
调用之前的任何时候放弃页脚的排队脚本(不是样式); wp_print_footer_scripts()
钩子不适用于寄存器/队列,它们是输出时代码中的点已经发生了。它们适合于手动/自定义脚本/样式输出。管理员呢?
好吧,那里的功能更加复杂,复杂和嵌套。
对于初学者而言,只需对所有内容使用
wp_print_*
钩子(已将admin_enqueue_scripts
全局传递给有条件的东西),它将很好地用于大多数情况下; 当您需要复杂的东西时-查看
$hook_suffix
并从那里挖掘合适的钩子。登录该怎么办?
有一个名为
admin-header.php
的特定钩子。
评论
嗯,在另一个问题的另一个答案中,建议我使用admin_print_scripts- {xxx}。我发现调用了admin_print_scripts,但未调用-{xxx}。 -edit.php为例。排队进入admin_print_scripts-xxx的答案有多正确,您会推荐什么?-假设我想在自定义帖子类型添加/编辑页面(用于metabox)中包含脚本/样式
– JM在工作
2011年6月30日9:33
我个人认为,@ JM在工作中-除非您真的知道为什么需要它们,否则请不要使用* print *钩子。总体而言,它们用于打印,而不是用于队列。 admin_enqueue_scripts挂钩传递$ hook_suffix变量,该变量与那些动态挂钩中使用的变量相同。
–稀有
2011年6月30日9:40
$ hook_suffix在我的编辑投资组合页面中看起来像post.php,为什么?我还以为是edit.php,然后如何确定我是否正在编辑/发布投资组合而不是正常发布?
– JM在工作
2011年7月8日在2:44
老实说,@ JM在变量中有点讨厌:)在自己的插件中,处理它更容易(返回add _ * _ page()函数),但是在本机WP屏幕中,它可以是不同的东西。
–稀有
2011年7月8日在15:36
不幸的是,当我将钩子从wp_footer更改为wp_enqueue_scripts或admin_print_scripts时,CSS消失了,并且在源代码中没有显示。这是我使用的代码:add_action('wp_enqueue_scripts','addCSS');那不起作用,这起作用了add_action('wp_enqueue_scripts','addCSS');除了它显然将CSS添加到页脚。我究竟做错了什么?
–利爪
2012年5月7日15:09