我正在使用\'Bones\' 在我最新的WordPress站点中,当我通过Google PageSpeed运行该站点时,我收到以下错误:
消除折叠内容上方的渲染阻塞JavaScript和CSS:
https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js/ https://www.default.com/…包括/js/jquery/jquery迁移。最小jshttps://ajax.googleapis.com/…ax/libs/jqueryui/1.10.3/jquery-ui。最小jshttps://www.default.com/…卢金斯/节点。tmp/js/jquery。运输最小jshttps://www.default.com/…GIN/节点。tmp/js/jquery。触摸擦拭。最小jshttps://www.default.com/…nt/插件/节点。tmp/js/jquery。sidr。js公司https://www.default.com/…UGIN/节点。tmp/js/mobile。导航。前端。js公司https://www.default.com/…/图书馆/js/图书馆/现代化。风俗最小js
如何将这些脚本加载到页脚中,而不是像主题当前所做的那样加载到页眉中?
骨骼中包含以下内容。php初始化主题:
/*********************
SCRIPTS & ENQUEUEING
*********************/
// loading modernizr and jquery, and reply script
function bones_scripts_and_styles() {
global $wp_styles; // call global $wp_styles variable to add conditional wrapper around ie stylesheet the WordPress way
if (!is_admin()) {
// modernizr (without media query polyfill)
wp_register_script( \'bones-modernizr\', get_stylesheet_directory_uri() . \'/library/js/libs/modernizr.custom.min.js\', array(), \'2.5.3\', false );
// register main stylesheet
wp_register_style( \'bones-stylesheet\', get_stylesheet_directory_uri() . \'/library/css/style.css\', array(), \'\', \'all\' );
// ie-only style sheet
wp_register_style( \'bones-ie-only\', get_stylesheet_directory_uri() . \'/library/css/ie.css\', array(), \'\' );
// comment reply script for threaded comments
if ( is_singular() AND comments_open() AND (get_option(\'thread_comments\') == 1)) {
wp_enqueue_script( \'comment-reply\' );
}
//adding scripts file in the footer
wp_register_script( \'bones-js\', get_stylesheet_directory_uri() . \'/library/js/scripts.js\', array( \'jquery\' ), \'\', true );
// enqueue styles and scripts
wp_enqueue_script( \'bones-modernizr\' );
wp_enqueue_style( \'bones-stylesheet\' );
wp_enqueue_style( \'bones-ie-only\' );
$wp_styles->add_data( \'bones-ie-only\', \'conditional\', \'lt IE 9\' ); // add conditional wrapper around ie stylesheet
/*
I recommend using a plugin to call jQuery
using the google cdn. That way it stays cached
and your site will load faster.
*/
wp_enqueue_script( \'jquery\' );
wp_enqueue_script( \'bones-js\' );
}
}
最合适的回答,由SO网友:Dylan 整理而成
列出的大多数JavaScript看起来都属于节点。tmp插件,而不是实际的骨骼主题。除非你使用wp_deregister_script 禁用脚本,然后在页脚中再次加载它们。这可能会很快变得一团糟,并在插件更新时引发问题。如果你还想继续做下去,有一篇关于how to disable plugin scripts and styles.
“骨骼”主题似乎已经在页脚中加载脚本:
//adding scripts file in the footer
wp_register_script( \'bones-js\', get_stylesheet_directory_uri() . \'/library/js/scripts.js\', array( \'jquery\' ), \'\', true );
最后真正的参数是在页脚中加载脚本。查看codex页面
wp_register_script 了解更多信息。
下面将jQuery移动到您的网站页脚。然而,您需要注意的是,如果插件在网站标题中加载脚本,那么这很可能会破坏插件。代码中有一个检查,以确保jQuery不会在管理和主题定制器中移动。
function themename_print_jquery_in_footer( &$scripts ) {
// Return if the website is being requested via the admin or theme customizer
global $wp_customize;
if ( is_admin() || isset( $wp_customize ) ) {
return;
}
$scripts->add_data( \'jquery-core\', \'group\', 1 );
$scripts->add_data( \'jquery-migrate\', \'group\', 1 );
}
add_action( \'wp_default_scripts\', \'themename_print_jquery_in_footer\' );