WP_REGISTER_SCRIPT未按预期加载

时间:2012-01-08 作者:zac

我正在加载这样的脚本:

//load scripts
//wp_register_script( $handle, $src, $deps, $ver, $in_footer );

add_action(\'wp_enqueue_scripts\', \'load_scripts\');

function load_scripts() {

    if (!is_admin()) {

        wp_register_script(\'modernizr\', get_bloginfo(\'template_directory\') .\'/scripts/modernizr-latest.js\',false);
        wp_enqueue_script(\'modernizr\');

        wp_enqueue_script(\'jquery\', true );

        wp_register_script(\'cookie\',get_bloginfo(\'template_directory\') . \'/scripts/cookie.js\', array(\'jquery\'), \'1.0\',true);
        wp_enqueue_script(\'cookie\');

        wp_register_script( \'Gmaps\', \'http://maps.google.com/maps/api/js?sensor=false\', true );
        wp_enqueue_script (\'Gmaps\');

        wp_register_script(\'plugins\', get_bloginfo(\'template_directory\') .\'/scripts/plugins.js\',true);
        wp_enqueue_script(\'plugins\');

        wp_register_script( \'maps_scripts\',  get_bloginfo(\'template_directory\') . \'/scripts/maps.js\', array(\'Gmaps\'), \'1.0\', true );
        wp_enqueue_script (\'maps_scripts\');

        wp_register_script(\'history\', get_bloginfo(\'template_directory\') .\'/scripts/history.js\', array(\'jquery\'), \'1.0\',true);
        wp_enqueue_script(\'history\');


    }
}
有了这个,我希望看到除了modernizr之外的所有脚本都加载到页脚中。相反,这是一种错误的杂烩。从这个示例中可以看到jquery、google地图和插件。js仍然加载在标头中,即使$in_footer 设置为true。按预期在页脚中加载Cookie、maps和history。

有人能帮我解释一下吗?

1 个回复
最合适的回答,由SO网友:mor7ifer 整理而成

在我进入解决方案之前,请注意,get_template_directory_uri() 优先于get_bloginfo() 因为它是经过过滤的输出。也就是说,在更正后的代码中,我保留了您原来的方式,以避免您在有理由这样做的情况下键入。

你的问题是你忽略了一些参数,括号前的参数不是最后一个参数,它总是从左边开始计数,所以在很多参数中,你设置了$vertrue 而不是$in_footertrue. 此外,您不需要将jquery排队,这应该是自动完成的,但无论如何这样做都没有坏处。

add_action( \'wp_enqueue_scripts\', \'load_scripts \');

function load_scripts() {

    if ( !is_admin() ) {

        wp_enqueue_script( \'jquery\' );

        wp_register_script( \'modernizr\', get_bloginfo( \'template_directory\' ) .\'/scripts/modernizr-latest.js\' );
        wp_enqueue_script( \'modernizr\' );

        wp_register_script( \'cookie\', get_bloginfo( \'template_directory\' ) . \'/scripts/cookie.js\', array( \'jquery\' ), \'1.0\', true );
        wp_enqueue_script( \'cookie\' );

        wp_register_script( \'Gmaps\', \'http://maps.google.com/maps/api/js?sensor=false\', array(), false, true );
        wp_enqueue_script ( \'Gmaps\' );

        wp_register_script( \'plugins\', get_bloginfo( \'template_directory\' ) .\'/scripts/plugins.js\', array(), false, true );
        wp_enqueue_script( \'plugins\' );

        wp_register_script( \'maps_scripts\',  get_bloginfo( \'template_directory\' ) . \'/scripts/maps.js\', array( \'Gmaps\' ), \'1.0\', true );
        wp_enqueue_script ( \'maps_scripts\' );

        wp_register_script( \'history\', get_bloginfo( \'template_directory\' ) .\'/scripts/history.js\', array( \'jquery\' ), \'1.0\', true );
        wp_enqueue_script( \'history\' );


    }
}
请注意:this 也许值得一读,这有助于使一切都统一起来。就我个人而言,我尝试按照编码标准编写所有内容,即使不一定要这样,作为一种良好实践的习惯。

结束

相关推荐

write in functions.php

我只想在我的函数中添加此代码。php,以便在我的帖子结束后直接显示。目前,我正在将此代码添加到我的单篇文章中。php,但我想在函数中添加它。php,此代码用于获取各个帐户的所有推文,代码如下<?php function parse_twitter_feed($feed, $prefix, $tweetprefix, $tweetsuffix, $suffix) { $feed = str_replace(\"&lt;\", \"<\", $feed);