我目前正在使用foundation开发一个自定义主题,我有几个问题。我遵循了这个教程,在这里查询了我所有的脚本等,现在它正在工作。
我唯一担心的是jquery,在一些论坛上说我必须注销jquery,然后注册另一个。在一些论坛中,它说我必须使用非冲突模式,而另一些论坛则告诉我只需查询即可。在这种情况下,正确的做法是什么?我不是在寻找一个临时的解决方案,我希望这个主题在未来不会出现问题或中断。
在使用非冲突方法的情况下。我创建了一个名为foundation.js的文件,并将其放入functions.php文件中,代码为:
jQuery.noConflict();
jQuery(document).ready(function($) {
$(document).foundation();
});
这是正确的方法吗?
noConflict()
模式。在noConflict()
模式下,jQuery的全局$
快捷方式不可用。因此,在foundation.js
中,您可以使用:
jQuery(document).ready(function ($) {
jQuery(document).foundation();
});
从Codex 检查此链接
文档很粗略,但这应该是正确的方式,至少对我有效:
在functions.hp:中
function my_enqueue_foundation() {
wp_register_script('foundation', get_template_directory_uri() . '/js/foundation.min.js','','1.1', true);
wp_enqueue_script('foundation');
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_foundation' );
然后在footer.php 中初始化基础
<?php wp_footer(); ?>
<script> jQuery(document).foundation(); </script>
如果你遵循了链接到的教程(github),你就做好了。在主题的functions.php
文件中,JS和init脚本被排入队列:
function awesome_theme_scripts(){
// scripts here ...
wp_enqueue_script( 'foundation-js', get_template_directory_uri() . '/foundation/js/foundation.min.js', array( 'jquery' ), '1', true );
wp_enqueue_script( 'foundation-init-js', get_template_directory_uri() . '/foundation.js', array( 'jquery' ), '1', true );
// more scripts...
}
后者包含noConflict
代码并初始化Foundation:
jQuery(document).ready(function($) {
$(document).foundation();
});