WP_enQueue_SCRIPT()根本不工作

时间:2014-12-23 作者:DON TOLIVER

我试图使用wp\\u enqueue\\u script()将JavaScript文件排队,但它根本不起作用。这是我的代码:

function load_css_js() {
    wp_enqueue_style(\'gdgt-base\', get_template_directory_uri() . \'/css/gdgt-base.css\');
    wp_enqueue_style(\'gdgt-icon\', get_template_directory_uri() . \'/icons/css/gdgt.css\', true);
    wp_register_script(\'gdgt-base\', get_template_directory_uri() . \'/js/gdgt-base.js\', array( \'jquery\' ) , true);
    wp_enqueue_script(\'gdgt-base\');
}

add_action(\'wp_enqueue_scripts\', \'load_css_js\');
然而,当我取消注册默认的WP Javasciprt并从其他地方注册jquery时,它就可以工作了。什么可能导致此问题?谢谢你的帮助!

3 个回复
SO网友:Robert hue

wp_enqueue_stylewp_enqueue_script 接受许多参数,按正确的顺序使用它们非常重要,否则这些函数将失败。

下面是每个函数的完整参数集。

wp_enqueue_style( $handle, $src, $deps, $ver, $media );
wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
在您的wp_enqueue_style 您定义$handle, $src 正确,但$depstrue 这是不正确的。同样适用于wp_enqueue_script.

这是你的固定函数。

function load_css_js() {
    wp_enqueue_style( \'gdgt-base\', get_template_directory_uri() . \'/css/gdgt-base.css\', false, NULL, \'all\' );
    wp_enqueue_style( \'gdgt-icon\', get_template_directory_uri() . \'/icons/css/gdgt.css\', false, NULL, \'all\' );

    wp_register_script( \'gdgt-base\', get_template_directory_uri() . \'/js/gdgt-base.js\', array( \'jquery\' ), NULL, false );
    wp_enqueue_script( \'gdgt-base\' );
}

add_action( \'wp_enqueue_scripts\', \'load_css_js\' );
有关更多信息,请阅读codex上每个函数的文档。

SO网友:Zeth

对于其他像我这样的白痴,我想我在这里有所贡献。:-)

我只花了一个小时,因为我写了array( \'\' ) 而不是array() 在依赖项中。

要知道,这两者之间有区别:

wp_enqueue_script( \'footerScript\', get_stylesheet_directory_uri() . \'/assets/js/appFooter.js\', array( \'\' ), false, true );
以及

wp_enqueue_script( \'footerScript\', get_stylesheet_directory_uri() . \'/assets/js/appFooter.js\', array(), false, true );
。。。第一个永远不会加载。第二个将::-)

@Robert\\u Hue的回答引导我找到了答案。

SO网友:EGWorldNP

注册和排队脚本时,不需要调用wp\\u register\\u script()和wp\\u enqueue\\u script()。只需调用wp\\u enqueue\\u script()

wp\\u enque\\u脚本的基本语法是:

wp_enqueue_script( string $handle, string $src = \'\', array $deps = array(), string|bool|null $ver = false, bool $in_footer = false )
现在根据您的代码,应该是这样的:

function load_css_js() {
            wp_enqueue_style(\'gdgt-base-style\', get_template_directory_uri() . \'/css/gdgt-base.css\');
            wp_enqueue_style(\'gdgt-icon\', get_template_directory_uri() . \'/icons/css/gdgt.css\');
            wp_enqueue_script(\'gdgt-base-script\', get_template_directory_uri() . \'/js/gdgt-base.js\', array( \'jquery\' ) , \'2019\' true);
        }

add_action(\'wp_enqueue_scripts\', \'load_css_js\');
[访问]:https://developer.wordpress.org/reference/functions/wp_enqueue_script/ <有关详细信息,请参阅文档。

结束