我已经阅读了关于wp_enqueue脚本的所有帖子和文档...但我从来没有成功地让它工作。
这就是我正在做的事情:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"</script>
<script type="text/javascript">
MY CODE
</script>
我知道我知道我知道这不是正确的方法。所以这就是我试过的:
wp_enqueue_script('jquery');
wp_head();
没有运气。
add_action('init', 'addscripts');
function addscripts() {
wp_enqueue_script('jquery');
}
wp_head();
没有运气。
//in the theme's functions.php file
add_action('init', 'addscripts');
//add_action('wp_enqueue_scripts', 'addscripts'); //this also doens't work
function addscripts() {
wp_enqueue_script('jquery');
}
我也尝试了相同的方法,链接到谷歌的外部jquery库,而不是jquery
标签。我也试过取消注册然后注册jquery脚本。从不工作。
所以我认为这些是关键问题:
我对wp_enqueue_script()
功能的调用有问题吗?
它应该去哪里? functions.php
? header.php
我是否需要使用未提及的特定挂钩? 'init'
? 'template_redirect'
? 'wp_enqueue_scripts?'
请不要codex复制/粘贴代码段!我已经阅读了50次并尝试了所有这些。我保证。
我正在尝试干净安装WP3并将上述代码添加到默认的二十二主题。
答案 0 :(得分:3)
我们必须假设wp_enqueue有效,因为我没有看到干草叉和火把。
这样的事情会让许多开发者感到不安。
因此,我们假设它永远不会被调用。
尝试将这样的内容添加到被调用的函数中以取消注册/注册新版本的jQuery(不确定为什么要执行此操作)。
<?php error_log( 'Something called me!' , 0 ); ?>
然后在运行您的站点并且您希望调用您的函数之后,请检查您的服务器错误日志(/var/log/apache/yoursite-error.log或其他内容)并查看该字符串是否显示。
如果它出现,我们可以继续进行下一组故障排除。
答案 1 :(得分:1)
http://codex.wordpress.org/Function_Reference/wp_enqueue_script
假设您要使用jQuery的CDN副本而不是WordPress, 将此代码添加到functions.php文件中。
<?php
function my_scripts_method() {
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js');
wp_enqueue_script( 'jquery' );
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
?>
答案 2 :(得分:0)
我想添加一条评论,但假设开场问题太老了,不能这样做。
我希望我在这里引用所有合适的人并承认他们的意见。
我和@Emerson有同样的问题,直到我做了以下操作,以及jQuery如何工作/加载。
首先,我将我的JS代码从$更改为jQuery(正如@Johannes Pille在开头的一堆评论中所建议的那样。@Johannes Pille提到的noConflict()的信息可以在http://codex.wordpress.org/Function_Reference/wp_enqueue_script#jQuery_noConflict_Wrappers
编解码器的链接只适合你@Emerson ..:P
所以我的代码如下所示 - 希望这有助于某人。
JS代码
/**
* navigation.js
*
* Handles toggling the navigation menu for small screens.
*/
jQuery(document).ready(function(){
jQuery(".nav-toggle").click(function(){
jQuery("#menu-header-menu").slideToggle("fast");
});
});
在我的functions.php文件中
function toggle_menu(){
if(!is_admin()){
//register the script location
wp_register_script('navigation',
get_stylesheet_directory_uri() . '/js/navigation.js',
array('jquery'), '2.0.110526' );
// enqueue the script
wp_enqueue_script('navigation');
};
}
add_action('init', 'toggle_menu');
我发现告诉Wordpress要使用的jQuery版本,'2.0.110526'非常非常重要。如果没有它,它就无法工作。
我没有必要添加任何将jQuery添加到header.php或functions.php的OP示例。正如许多其他人所说,Wordpress附带了jQuery。我发现你只需要在函数中注册脚本时告诉Wordpress何时以及使用什么版本.php