enqueing Javascript and CSS

时间:2018-06-01 作者:Paulmcf1987

每当我在gtmetric、google Insights、Pingdom等网站上查看我的网站时。。。我总是收到渲染阻塞JS的反馈

目前,我将所有脚本按如下方式排队:

<head>
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
    <link href=\'https://fonts.googleapis.com/css?family=Roboto:400,300,700\' rel=\'stylesheet\' type=\'text/css\'>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
</head>
我想知道是否有更好的方法来排队,这样脚本就可以组合起来,特别是JS添加到页脚?

我看到我可以通过functions.php 如本页所示external javascript

然而,似乎有一些污名围绕着它,因为它可能无法正常工作。

有什么建议吗?小费?

我已经尝试从。。。

并插入函数中。php如下:

function external_scripts() {

wp_register_script(\'googleapis\', \'https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js\', array(\'jquery\'), true);
wp_register_script(\'bootstrap\', \'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js\', array(\'jquery\'), true);

wp_enqueue_script(\'googleapis\');
wp_enqueue_script(\'bootstrap\');
}

add_action( \'wp_enqueue_scripts\', \'external _scripts\' );  

function external_styles() {

wp_register_style(\'bootstrapcdn\', get_template_directory_uri() . \'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css\');
wp_register_style(\'maxbootstrapcdn\', get_template_directory_uri() . \'https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css\');

wp_enqueue_style(\'bootstrapcdn\');
wp_enqueue_style(\'maxbootstrapcdn\');
}

add_action( \'wp_enqueue_style\', \'external _styles\' );  
但这似乎破坏了网站。。。现在图像不会加载,悬停时菜单也不会下拉。

理想情况下,我希望推迟:

wp_register_script(\'jquery\', \'https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js\', true);
和异步

wp_register_script(\'bootstrap\', \'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js, true);

1 个回复
SO网友:David Sword

如果您关心pagespeed和这些标准,那么应该将资源设置为本地资源,而不是远程服务器。虽然它们都是CDN,但没有什么比本地更快的了。随着http/2的兴起,拥有更少的脚本将变得越来越不重要,但在本地拥有它们仍然很重要。

您可以手动组合大多数这样的文件(我的许多主题主样式表以压缩的第三方lightbox css结尾),或者如果感觉足够高级,可以使用webpack.

你应该是enqueue\'ing通过functions.php, 在您的header.php, 无论是远程还是本地。它解决了如此多的依赖性、插件和脚本冲突问题。

您可以通过以下方式将脚本放入页脚functions.php 像这样:

add_action( "wp_enqueue_scripts", function(){
    // the last arg is "in_footer"
    wp_enqueue_script( $handle, $src, $deps, $ver, true);
    // this will put the proceeding styles in [`wp_footer`][3]
    add_action( "wp_footer", function(){
        wp_enqueue_style( $handle, $src, $deps, $ver, $media );
    });
});
您可以添加defer 和或async 在排队时选择脚本,类似于

add_filter(\'script_loader_tag\', function ($tag, $handle) {
    if ( \'jquery\' !== $handle )
        return $tag;
    return str_replace( \' src\', \' async="async" src\', $tag );
}, 10, 2);
你可以@import 在主题中使用Google Front.css 而不是在标题中使用

@import url(\'https://fonts.googleapis.com/css?family=Roboto:300,400,700\')

结束

相关推荐

WordPress style le.css未更新,仅在重新加载主题后

我正在使用Bootstrap来组装Wordpress。我在本地更新所有文件,并通过Sublime的SFTP上传它们。我还使用Cyberduck来再次检查更改是否已全部完成。一切都进行得很顺利,我可以轻松地更改文件,并通过简单的刷新看到它们的更新。但说到风格。css文件,更新是一件很糟糕的事。我对文件进行了更改,并将其上载,但在重新加载时未看到任何更改。要查看更改,我必须重新加载主题,然后进行更改,通过SFTP上载更改的文件并重新加载。然而,在刷新不再工作之前,我只能这样做一次。在我的标题中。php I加载