1

在开发 Wordpress + BuddyPress 子主题期间,我遇到了脚本问题。我想将它们移动到 BODY 页脚(Modernizr 除外),但一些 BuddyPress 脚本留在顶部。我已经做到了:

// remove unused head entries
remove_action('wp_head',        'rsd_link');
//...
remove_action('wp_head',        'adjacent_posts_rel_link');

// move sctipts to footer
remove_action('wp_head',        'wp_print_scripts');
remove_action('wp_head',        'wp_print_head_scripts');
remove_action('wp_head',        'wp_enqueue_scripts');
remove_action('wp_head',        'bp_core_confirmation_js');
remove_action('wp_head',        'bp_core_add_ajax_url_js');

add_action('wp_head',           'wp_head_scripts',      9);
add_action('wp_footer',         'wp_enqueue_scripts',           20);
add_action('wp_footer',         'bp_core_confirmation_js',      21);
add_action('wp_footer',         'bp_core_add_ajax_url_js',      22);

我对动作顺序感到困惑,它看起来并不漂亮。

有没有可能让它更漂亮(更自动化)?我在考虑这样的数组:

$head_scripts = array(
    'modernizr'         => 'libs/modernizr-2.6.1.js',
);
$footer_scripts = array(
    'jquery'            => 'libs/jquery-1.8.2.js',
    'jquery.mansonry'   => 'libs/jquery.masonry.min.js',
    'fb_api'            => 'libs/fb_api.js',
    'scripts'           => 'script.js'
);

和一个功能(动作),它首先在头部添加,另一个在页脚和下一个 admin_bar 中,如有必要,可以添加 buddypress 脚本。

4

1 回答 1

0

为什么不跟踪所有这些脚本wp_enqueue_script文件并将 in_footer 参数更改为 true。您可能知道 wp_enqueue_script 方法具有最后一个参数,您可以指示该脚本是否将放置在页脚中。默认为 false 将被放入标题中

 wp_enqueue_script( 
        $handle
       ,$src
       ,$deps
       ,$ver
       ,$in_footer  // make this TRUE to put the script in the footer
);

有关更多信息,请访问文档http://codex.wordpress.org/Function_Reference/wp_enqueue_script

于 2012-11-17T05:04:22.037 回答