我目前正在开发一个使用基础和_s的自定义主题我有几个问题。我已经按照本教程Here了解了我的所有脚本等,现在它正在工作。
我唯一担心的是jquery,在某些论坛上说我必须取消注册jquery然后注册另一个等等。在某些论坛上它说我必须使用非冲突模式,而其他人告诉我只是为了enque它就是这样。在这种情况下,什么是正确的做法?我不是在寻找一个临时的解决方案,我希望这个主题能够在没有问题的情况下更新或者在将来发生。
在使用非冲突方法的情况下。我创建了一个名为foundation.js的文件,并使用以下代码在functions.php文件中对其进行了操作:
jQuery.noConflict();
jQuery(document).ready(function($) {
$(document).foundation();
});
这是正确的方法吗?
答案 0 :(得分:0)
WordPress附带的jQuery库设置为noConflict()
模式。在noConflict()
模式下,jQuery的全局$
快捷方式不可用。所以在foundation.js
中你可以使用:
jQuery(document).ready(function ($) {
jQuery(document).foundation();
});
答案 1 :(得分:0)
文档很粗略,但这应该是正确的方法,至少它对我有用:
在functions.php中:
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>
答案 2 :(得分:0)
如果您按照链接到(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();
});