2013-07-23 48 views
1

我想创建一个主题从头开始使用基础框架,它的工作很好的开箱即用,但是当我需要包括基础JavaScript脚本,它显示,如果他们已经加载,但没有任何工作,首先顶部酒吧不工作,我试图注销jQuery的预先加载WordPress和使用谷歌CDN的,因为我已经阅读这是一个肯定的方式顶部酒吧和其他脚本的工作,但没有到目前为止作品基础JavaScript的WordPress主题

这里是我的代码中的functions.php

// Enqueue scripts essential for foundation framework to act responsive 

function responsive_scripts_basic() 
{ 
    //register scripts for our theme 
    wp_deregister_script('jquery'); 

    wp_register_script('foundation-mod', get_template_directory_uri() . '/javascripts/vendor/custom.modernizer.js',  
true); 
    wp_register_script('foundation-topbar', get_template_directory_uri() . '/javascripts/foundation/foundation.topbar.js', 
true); 
    wp_register_script('foundation-main', get_template_directory_uri() . '/javascripts/foundation/foundation.js', 
true); 
    wp_register_script('zepto', get_template_directory_uri() . '/javascripts/vendor/zepto.js', 

true); 
    wp_register_script('jquery','http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js', 
true); 


    //enqueue scripts for our theme 
    wp_enqueue_script('foundation-mod'); 
    wp_enqueue_script('foundation-topbar'); 
    wp_enqueue_script('foundation-main'); 
    wp_enqueue_script('zepto'); 
    wp_enqueue_script('jquery'); 
} 
add_action('wp_enqueue_scripts', 'responsive_scripts_basic'); 

我用同样的方法F或样式表,并没有任何问题,在这方面的任何经验?我认为用这个框架构建主题很容易,但公平起来却相当复杂。

+0

什么说你的客户端调试控制台?很可能[你必须首先包含jQuery或zepto](http://foundation.zurb.com/docs/javascript.html),然后是基础的js文件。这说,你应该[在他们之间选择](http://stackoverflow.com/questions/14830334/what-is-the-difference-between-zepto-and-jquery-2),他们正在做相同/相似的事情。如果您不确定,使用jQuery – metadings

+0

[01:10:42.619]的ReferenceError:未定义基金会@ HTTP://本地主机:8888/WordPress的/可湿性粉剂内容/主题/测试/ Java脚本/基础/ foundation.topbar.js ?版本3.5.2 =:297 – Alex

回答

1

那么js文件“入队”的顺序是非常重要的。

首先,你做的“排队”的近代化,然后jQuery的/仄,然后Foundation.min.js然后顶栏扩展:

//enqueue scripts for our theme 
wp_enqueue_script('foundation-mod'); 
wp_enqueue_script('jquery'); 
wp_enqueue_script('foundation-main'); 
wp_enqueue_script('foundation-topbar'); 

请参阅zurb Foundation Installation docs,在考虑到脚本的命令。

也得到基础的事情开始,你需要一个脚本元素最有可能在你的PHP的最后制作HTML:

<script type="text/javascript"> 
    $(document).foundation(); 
</script> 

由于WordPress是(我知道)推动的jQuery到noConflict模式,你可能不得不写这就像

<script type="text/javascript"> 
    jQuery(document).foundation(); 
</script> 

编辑:的Zepto没有noConflict功能,留下$是jQuery的或任何它被设置。为了简单起见,请选择jQuery并使用完全限定的jQuery(document).foundation()语法!

+0

这里是我修改后的代码: – Alex

+0

我改变如你所说,也包括在body标签的$(document).foundation结束()调用的顺序;这就是基础文档中说的,现在它起作用了,是在wordpress中添加代码的最佳方式?硬编码在index.php ...感谢百万 – Alex

+0

“是最好的方式” - 是的,我相信是这样。 PS。欢迎来到stackoverflow!请通过接受答案让我有你的观点;) – metadings