将调用组合到多个javascripts中

时间:2011-03-12 16:57:01

标签: php javascript jquery wordpress

我正在尝试使用(wordpress功能)wp_enqueue_script调用多个JQuery脚本。对JQuery的调用完美无缺,但第二次调用cufon却没有。我不是php或javascript专家 - 任何人都可以伸出援助之手,是否有最佳实践方法?

function my_init_method() {
    if (!is_admin()) {
        wp_deregister_script( 'jquery' );
        wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js');
        wp_enqueue_script( 'jquery' );
    }
}    

add_action('init', 'my_init_method');

function my_init_method2() {
    if (!is_admin()) {
        wp_deregister_script( 'cufon' );
        wp_register_script( 'cufon', 'http://mydomain.com/wp-content/themes/simplefolio/js/cufon-yui.js');
        wp_enqueue_script( 'cufon' );
    }
}    

add_action('init', 'my_init_method2');

2 个答案:

答案 0 :(得分:1)

我选择deregister_script和enqueue_script的方式如下(随意根据您的需要调整):

    function my_deregister_javascript() {
    wp_deregister_script ( 'jquery-ui-tabs' );
    wp_deregister_script ( 'jquery-ui-core' );
    wp_deregister_script ( 'jquery-cycle' );
    wp_deregister_script ( 'hoverintent' );
    wp_deregister_script ( 'superfish' );
    wp_deregister_script ( 'jquery-validate' );
    wp_deregister_script ( 'arras_add_header_js' );
    wp_deregister_script ( 'arras_add_slideshow_js' );
    wp_deregister_script ( 'ratings_scripts' );
    wp_deregister_script ( 'wp-postratings' );
    wp_deregister_script ( 'sharing-js' );
    wp_deregister_script ( 'jquery' );
    wp_enqueue_script ('jquery', '/js/mymusicplug.js', '', '1.4.4');
}
if ( !is_admin() ) {
add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );
}

如您所见,我的'if(!is_admin())'与脚本'输出'相关。我也注销了没有注册 - 通过wp_register_script注册脚本导致完全崩溃 - 然后将你的组合/缩小的JS所在的脚本文件排入队列。这绝对适用于我,结果是一个143,000+ b JS文件。我知道,它可能看起来像JS文件上的一个重要标签,但通过简化诸如通过'deregister_script'在WP中组合JS的东西,它减少了我的页面超过30多个本地和外部JS的HTTP请求。我页面上最重的JS现在涉及页脚中的分析和AdSense代码。而且,我只有大约10-15个请求。

很棒的提示:组合CSS,1个CSS文件,1个JS文件,你的页面会飞!

希望这会有所帮助。

答案 1 :(得分:0)

我不确定你在这里寻找什么,但看起来你可以通过结合你的两个初始化陈述来简化事情

function my_init_method() {
    if (!is_admin()) {
        wp_deregister_script( 'jquery' );
        wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js');
        wp_enqueue_script( 'jquery' );
        wp_deregister_script( 'cufon' );
        wp_register_script( 'cufon', 'http://mydomain.com/wp-content/themes/simplefolio/js/cufon-yui.js');
        wp_enqueue_script( 'cufon' );
    }
}    

add_action('init', 'my_init_method');

此外,您应确保http://mydomain.com/wp-content/themes/simplefolio/js/cufon-yui.js文件存在且可从您的浏览器访问。