5

我正在开发一个主题并试图让 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

4 回答 4

9

删除默认的 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');
于 2013-01-30T15:08:56.053 回答
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 之前立即注册另一个版本

于 2013-01-30T15:01:11.677 回答
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是用于加载前端脚本的正确挂钩(请参阅 Codex)。您无需检查is_admin(),因为admin_enqueue_scripts在管理员端加载脚本的相应钩子。

于 2013-01-30T15:01:10.077 回答
2

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

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' );
于 2013-10-19T02:10:16.953 回答