我有一个Wordpress主题,其功能取决于jquery库jquery.tools。在我的头文件中:
//header.php
<script src="http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#trigger-button-53").tooltip({effect:'slide'});
})
</script>
<script type="text/javascript">
$(document).ready(function(){
$('#accordion-slider').kwicks({
max : 750,
spacing : 1
});
});
</script>
在我的自定义functions.php文件中:
// functions.php
<?php
function my_scripts_method() {
wp_enqueue_script('tools', 'http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js', '', '', true );
$kwicks_url = get_template_directory_uri().'/js/jquery-kwicks-1.5.1.js';
wp_enqueue_script('jquery-kwicks', $kwicks_url, '', '', true);
wp_enqueue_script('jquery', "https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js", '', '', true );
}
add_action('wp_enqueue_scripts', 'my_scripts_method'); // For use on the Front end (ie. Theme)
?>
两种方法都返回: http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js?ver=3.4.2
就目前而言,通过这种方式,我所有的javascript方法都具有魅力。但我正在引用
http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js
两次让它全部运转?如果我省略了header.php文件中的直接引用,即使两个方法都成功加载了库,我的脚本也无法工作。此外,我们不应该在WP主题的头文件中粘贴对脚本的直接引用(子主题是特定的),因为这是不好的做法。您可能已经注意到我在使用
时在页脚中加载脚本my_scripts_method();
但如果我在标题中加载它们没有任何区别。稍微偏离正切,我假设:
wp_enqueue_script(
$handle
,$src
,$deps
,$ver
,$in_footer
);
$ handle可以是任何字符串,即
wp_enqueue_script('fried-egg', 'http://example.com/path/to/jquery.js');
wp_enqueue_script('tools', 'http://example.com/path/to/jquery.js');
同样有效吗?
WTF正在进行中? :)
答案 0 :(得分:0)
确保jQuery仅在 jQuery工具之前加载。如果之后加载jQuery,jQuery插件的任何引用都将被新版本的jQuery覆盖。这就是为什么你必须两次包含jQuery工具(一次在jQuery被覆盖之前,删除对jQuery工具的引用,然后再次包含jQuery之后)。
wp_enqueue_script('jquery', "https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js", '', '', true );
wp_enqueue_script('tools', 'http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js', '', '', true );
$kwicks_url = get_template_directory_uri().'/js/jquery-kwicks-1.5.1.js';
wp_enqueue_script('jquery-kwicks', $kwicks_url, '', '', true);