注册/入队脚本时何时使用Add_action

时间:2017-03-15 作者:themerlinproject

您应该何时使用add_action 将脚本排队或注册,而不是仅使用wp_register_script 和/或wp_enqueue_script? 换句话说,两者example 1example 2 以下内容似乎在functions.php, 那么,为什么这么多资源都这么说呢example 1 在WP中加载脚本的正确方法是什么?

Example 1:

function my_assets() {
    wp_register_script( \'owl-carousel\', get_stylesheet_directory_uri() . \'/owl.carousel.js\', array( \'jquery\' ) );
    wp_enqueue_script( \'owl-carousel\' );
}

add_action( \'wp_enqueue_scripts\', \'my_assets\' );

Example 2:

wp_register_script( \'owl-carousel\', get_stylesheet_directory_uri() . \'/owl.carousel.js\', array( \'jquery\' ) );
wp_enqueue_script( \'owl-carousel\' );
(是的,我知道在示例2中,您可以跳过注册脚本,根据需要将其排队)

2 个回复
SO网友:kraftner

在你测试它的情况下,它的工作原理是一样的。

答案实际上可能有点复杂,但主要是将其放在动作回调中,只在需要时注册它们,只需将其放在functions.php 它总是在主题处于活动状态时发生。

首先,注册从未使用过的东西可能会浪费性能。您可能认为它在任何情况下都应该存在,但实际上在WP中,有很多情况下前端JS/CSS是完全不相关的。最明显的情况是后端。但也有一些插件可能会创建一个不需要JS/CSS的端点。而且还有很多。

最后但并非最不重要的一点是,通过在操作中使用此选项,第三方代码(插件、子主题)可以取消挂接回调,例如用其他内容替换它。

我希望这能让你基本理解为什么只有在适当的挂钩上做事情才是好的做法。

要结束这件事,您可能也会感兴趣:https://wordpress.stackexchange.com/a/21579/47733

SO网友:forethought

你的问题的简短答案是时间。wp_enqueue_scripts 确保脚本在需要时可用。

wp\\u enqueue\\u脚本是将要出现在前端的项目排队时使用的合适挂钩。