‘Bones’主题:在页脚而不是页眉中加载股票脚本?

时间:2014-03-07 作者:eclipsis

我正在使用\'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\' );

  }
}

1 个回复
最合适的回答,由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\' );

结束

相关推荐

针对在widgets.php页面上的WP指针可拖动的小工具的提示

我正在更新我编写的名为Feature Me的小部件插件,并为第一次安装插件的用户添加WordPress指针,以帮助他们在安装插件后找到小部件。然而,我遇到了一个问题。指针必须有一个目标,该目标是一个ID# 或者一个班级. (正常情况下可以)。但是在widget页面上,所有widget都以widget-[somenumber]. 如果我知道[某个数字]是什么,我可以毫无问题地瞄准它,但99%的时候,我不知道数字是什么,因为它实际上取决于插件的安装顺序。在其他网站上,这是小部件的ID:希望你能看到我的问题。在