Wordpress wp_enqueue_script不工作

时间:2013-01-30 14:52:19

标签: javascript wordpress

我正在开发一个主题并尝试让wp_enqueue_script工作。奇怪的是,没有任何东西出现。它没有做任何事情。这是我的设置:

在functions.php中的

我有:

function named_scripts() {

    global $named_options;

    if( is_admin() ) return;

    wp_deregister_script( 'jquery' );
    wp_register_script( 'screen', tz_JS . '/screen.js', array( 'jquery' ) );
    wp_enqueue_script( 'screen' );
    wp_enqueue_script( 'bootstrap', tz_JS . '/bootstrap/bootstrap.js', array( 'jquery' ) );

    wp_register_style( 'custom-style', get_template_directory_uri() . '/css/custom-style.css', array(), '20120208', 'all' );  
    wp_enqueue_style( 'custom-style' );

}



add_action( 'init', 'named_scripts' );
在header.php中的

我打电话

named_scripts();

在HTML中,根本没有任何显示。

4 个答案:

答案 0 :(得分:8)

删除默认的wordpress jquery后,您应该已经注册了jquery文件。我使用这段代码..希望它有帮助..

function load_external_jQuery() { // load external file  
    wp_deregister_script( 'jquery' ); // deregisters the default WordPress jQuery  
    wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"), false);
    wp_enqueue_script('jquery');
    wp_register_script('blur', get_template_directory_uri() . '/_/js/blur.js', array('jquery') );
    wp_enqueue_script('blur');
}  
add_action('wp_enqueue_scripts', 'load_external_jQuery');

答案 1 :(得分:4)

杰拉尔德是个好消息。你已经注销了Wordpress附带的jQuery而没有注册替代版本。

如果要直接从CDN加载,则通常会删除已发布的版本。一个例子如下;

  wp_deregister_script('jquery');
  wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js', false, '1.7.2');
  wp_enqueue_script('jquery');

如果要取消注册,则需要在排除依赖于jQuery的其他JS之前立即注册另一个版本

答案 2 :(得分:3)

是否正确定义了常量“tz_JS”?假设是,你应该能够简化你的功能:

function named_scripts() {

    wp_enqueue_script( 'jquery' );
    wp_enqueue_script( 'screen', tz_JS . '/screen.js', array( 'jquery' ) );
    wp_enqueue_script( 'bootstrap', tz_JS . '/bootstrap/bootstrap.js', array( 'jquery' ) );

    wp_enqueue_style( 'custom-style', get_template_directory_uri() . '/css/custom-style.css', array(), '20120208', 'all' );  

}
add_action( 'wp_enqueue_scripts', 'named_scripts' );

wp_enqueue_scripts是用于加载前端脚本(see Codex)的正确钩子。您无需检查is_admin(),因为admin_enqueue_scripts是用于在管理端加载脚本的相应挂钩。

答案 3 :(得分:1)

如果您正在开发子主题,请在主题目录中加载js时使用get_stylesheet_directory_uri()

function named_scripts() {
  wp_enqueue_script('jquery');
  wp_enqueue_script(
        'default_scripts', 
        get_stylesheet_directory_uri() . '/js/scripts.js', 
        array('jquery'),
        '1.0',
        false
        );
}
add_action( 'wp_enqueue_scripts', 'named_scripts' );