使用Zurb Foundation与wordpress没有冲突

时间:2015-02-09 21:49:31

标签: jquery wordpress zurb-foundation-5

我目前正在开发一个使用基础和_s的自定义主题我有几个问题。我已经按照本教程Here了解了我的所有脚本等,现在它正在工作。

我唯一担心的是jquery,在某些论坛上说我必须取消注册jquery然后注册另一个等等。在某些论坛上它说我必须使用非冲突模式,而其他人告诉我只是为了enque它就是这样。在这种情况下,什么是正确的做法?我不是在寻找一个临时的解决方案,我希望这个主题能够在没有问题的情况下更新或者在将来发生。

在使用非冲突方法的情况下。我创建了一个名为foundation.js的文件,并使用以下代码在functions.php文件中对其进行了操作:

jQuery.noConflict();
jQuery(document).ready(function($) {
    $(document).foundation();
});

这是正确的方法吗?

3 个答案:

答案 0 :(得分:0)

WordPress附带的jQuery库设置为noConflict()模式。在noConflict()模式下,jQuery的全局$快捷方式不可用。所以在foundation.js中你可以使用:

jQuery(document).ready(function ($) {
    jQuery(document).foundation();
});

check this link from the Codex

答案 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();
});