为什么不应该硬编码javascript文件?为什么不应该硬编码指向javascript文件的链接,有几个原因:
它避开了WordPress的javascript文件队列,该队列是为处理依赖关系而设计的存在强制在页脚中加载脚本的插件(硬编码意味着它们不能这样做,甚至可能破坏您的插件)硬编码意味着其他插件无法取消注册或替换您的脚本(它们应该能够)。在避免两次加载文件的同时,也不能轻松地使用脚本通过注册脚本(wp_register_script()
) 然后您可以自由使用wp_enqueue_script()
在任何小部件、短代码或模板中。更好的是,只有在使用了适当的tempate、widget或shortcode时,脚本才会排队:如果它是硬编码的,则不可能使用wp_register_script()
/wp_enqueue_script()
允许您或其他插件使用wp_localize_script()
(最初用于传递本地化字符串,但更广泛地用于传递存储在数据库中的选项,这些选项随后可以在javascript文件中使用。
可能还有更多原因…add_action( \'init\', \'wpse125424_register_scripts\' );
function wpse125424_register_scripts(){
wp_register_script(
\'my-script-handle\', //unique handle for our script
plugins_url( \'js/my-script.js\', __FILE__ ), //url to script
array( \'jquery\' ), //list any dependencies
\'1.0\' //version, for cache busting
);
}
然后打电话
wp_enqueue_script(\'my-script-handle\')
每当您需要加载javascript文件时(例如,在负责小部件或短代码的函数中)。
这样做的好处很明显:您的脚本在一个易于维护的地方注册,并且与脚本排队的业务分离,脚本排队可以“即时”进行,并且可能受制于某种扭曲的逻辑。