我想在我的WordPress安装中包含Bootstrap 4。这就是我在儿童主题中functions.php
中包含它的方式。
// Bootstrap 4
function bootstrap() {
wp_enqueue_style('bootstrap-css', get_stylesheet_directory_uri() . '/css/bootstrap.min.css' );
wp_enqueue_script( 'jquery-slim', 'https://code.jquery.com/jquery-3.2.1.slim.min.js', array(), '3.2.1', true );
wp_enqueue_script( 'popper', 'https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js', array('jquery-slim'), '4.0.0', true );
wp_enqueue_script( 'bootstrap-js', 'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js', array('jquery-slim'), '4.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'bootstrap');
当我在pingdom或GTMetrix上测试我的网站时,他们说它已加载两次。为什么呢?
The following resources have identical contents, but are served from different URLs. Serve these resources from a consistent URL to save 1 request(s) and 68.0KiB.
https://code.jquery.com/jquery-3.2.1.slim.min.js
https://code.jquery.com/jquery-3.2.1.slim.min.js?ver=3.2.1
https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js
https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js?ver=4.0.0
父主题未加载任何这些文件。但是为什么例如popper.js没有加载两次?
答案 0 :(得分:1)
嗯,WP本身包含jquery和bootstrap,如果你想要你的特定的那些你应该取消注册核心/默认的,然后注册你的(没有jquery和bootstrap它不会做太多):
wp_deregister_script('jquery'); //because its a Core-Registered Script
wp_register_script('jquery', 'THE PATH TO THE FILE', array(), '', FALSE);
答案 1 :(得分:0)
JavaScript和CSS文件的双重加载可能是浏览器扩展的结果。
因此,在向functions.php
文件添加大量钩子之前,请尝试逐个禁用浏览器扩展,看看是否可以解决问题。
以特定的开发扩展为目标,例如 CSS Auto Reload ,这将对您的页面加载产生完全的影响。
我知道这是一个旧线程,但是我认为在StackOveflow上给出答案永远不会为时过晚,希望对大家有所帮助。