使用Zurb基金会与wordpress没有冲突



我目前正在使用foundation开发一个自定义主题,我有几个问题。我遵循了这个教程,在这里查询了我所有的脚本等,现在它正在工作。

我唯一担心的是jquery,在一些论坛上说我必须注销jquery,然后注册另一个。在一些论坛中,它说我必须使用非冲突模式,而另一些论坛则告诉我只需查询即可。在这种情况下,正确的做法是什么?我不是在寻找一个临时的解决方案,我希望这个主题在未来不会出现问题或中断。

在使用非冲突方法的情况下。我创建了一个名为foundation.js的文件,并将其放入functions.php文件中,代码为:

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

这是正确的方法吗?

WordPress附带的jQuery库设置为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();
});

相关内容

  • 没有找到相关文章

最新更新