wp_enqueue_script()和wp_register_script()之间的差异是什么

时间:2016-09-23 06:28:39

标签: php wordpress

我不清楚何时/何时使用wp_enqueue_script() wp_register_script()

3 个答案:

答案 0 :(得分:4)

简单来说;

wp_enqueue_script表示添加队列以注册文件
wp_register_script表示立即注册文件

  

wp_register_script 使用 wp_enqueue_script() 功能注册稍后要加入队列的脚本。

     

wp_enqueue_script() 如果提供$ src(不覆盖)并将其排队,则注册脚本。       来源Developer.wordpress

这是简短的Answer on WordpressDevelopment

wp_register_script($ handle,$ src,$ deps,$ ver,$ in_footer);

使用 wp_register_script()预先注册的脚本不需要使用wp_enqueue_script()手动排队,如果它们被列为排队的另一个脚本的依赖项。 WordPress会自动包含已注册的脚本,然后它会包含排队的脚本,该脚本会将注册脚本的句柄列为依赖项。

wp_enqueue_script($ handle,$ src,$ deps,$ ver,$ in_footer);

wp_enqueue_script()根据脚本依赖关系,在适当的时间将脚本文件链接到生成的页面(如果尚未包含脚本)以及是否已注册所有依赖项。您可以将脚本链接到先前使用wp_register_script()函数注册的句柄,也可以为此函数提供链接脚本所需的所有参数。

答案 1 :(得分:0)

基于wordpress.org

使用wp_register_script()预先注册的脚本如果被列为排队的另一个脚本的依赖项,则不需要使用wp_enqueue_script()手动排队。

WordPress会自动包含已注册的脚本,然后才会包含排队的脚本,该脚本会将注册脚本的句柄列为依赖项。

备注:

  • 如果要在站点的前端调用该函数,则应使用wp_enqueue_scripts操作挂钩调用该函数。要在管理屏幕上调用它,请使用admin_enqueue_scripts操作挂钩。对于登录屏幕,请使用login_enqueue_scripts操作挂钩。在动作挂钩之外调用它通常会导致意外结果,应该避免使用。
  • 如果尝试使用不同参数注册或排队已注册的句柄,则将忽略新参数。而是使用wp_deregister_script()并使用新参数再次注册脚本。
  • jQuery UI效果不包含在jquery-ui-core句柄

答案 2 :(得分:0)

据我了解,wp_register_scriptswp_register_scripts是可立即注册您的脚本(js)和样式(css)但不会直接将其加载到Wordpress页面中的函数。

有一种switch()语句可与这些功能配合使用,使它们仅在需要它们的页面上加载“脚本”。

不必注册所有脚本,但这可以为代码添加一些逻辑,并且可以肯定,它使您成为更好的开发人员;具有清晰的代码编写感觉。

一个很好的例子是为您的管理区域添加自定义样式表或自定义js脚本(例如,与Wordpress Media Uploader配合使用)。在这两种情况下,您应该分别使用wp_register_stylewp_register_script。此外,在两种情况下,您都需要在admin_enqueue_scripts处调用函数,因此,一个很好的经验法则是,当您迷上admin_enqueue_scripts时,请务必注册脚本。