我正在开发一个主题并尝试让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中,根本没有任何显示。
答案 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' );