1

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

我唯一关心的是 jquery,在某些论坛上说我必须注销 jquery,然后再注册另一个等。在某些论坛上,它说我必须使用非冲突模式,而其他人告诉我只是将其加入,仅此而已它。在这种情况下,正确的做法是什么?我不是在寻找临时解决方案,我希望这个主题在未来更新时不会出现问题或中断。

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

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

这是正确的方法吗?

4

3 回答 3

0

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

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

从 Codex 检查此链接

于 2015-02-09T22:03:40.043 回答
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>
于 2015-02-09T23:39:55.397 回答
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();
});
于 2015-02-10T00:19:04.593 回答