WordPress自动加载jQuery-将其添加到页脚的想法正确吗?

时间:2017-08-15 作者:Henry

我知道这行代码(放在header.php中)添加了jquery:

<?php wp_enqueue_script("jquery"); ?>
这会将其加载到标题部分。。。

所以,我只是把它添加到页脚。php和它的工作很好。。。

有人能告诉我这是否是在页脚中加载jquery的公认方式吗?

CONTENT CONTENT CONTENT

</footer>

<?php wp_enqueue_script("jquery"); ?>

<?php wp_footer(); ?>

</body>
</html>

1 个回复
SO网友:Johansson

您不应该手动使用wp_enqueue_script(\'jquery\');. WordPress可以以正确的方式为您排队。您只需将jQuery声明为脚本的依赖项:

wp_enqueue_script(
    \'my-script\', 
    get_template_directory_uri() .\'/my-script.js\', 
    array(\'jquery\'), 
    null, 
    true
);
可以将依赖项数组作为第三个参数传递。此外,通过将第5个参数设置为true,可以让WordPress将此脚本排入页脚。

如果您真的坚持要将jQuery移动到页脚,那么有一些优化插件,例如Autoptimize 可以帮你做到这一点。

如果你仍然really really would like a continuance, 您可以按以下方式执行:

function move_jquery_to_footer() {

    wp_deregister_script(\'jquery\');
    wp_enqueue_script(
        \'jquery\', 
        \'includes_url( \'/js/jquery/jquery.js\' )\', 
        array(), 
        null, 
        true
   );

}
add_action(\'wp_enqueue_scripts\', \'move_jquery_to_footer\');
不建议这样做,这样做可能会取消您在许多存储库和市场中的主题或插件的资格。

您还可以推迟对脚本的解析。这样,您的脚本将被异步解析。(代码由@toscho from编写this 答案)

add_filter( \'script_loader_tag\', function ( $tag, $handle ) {

    return str_replace( \' src\', \' defer="defer" src\', $tag );

}, 10, 2 );

结束