让jQuery使用自定义主题

时间:2013-07-03 作者:Jacob

我正在尝试使用一些jQuery插件来处理我的自定义主题。

到目前为止,我一直在这样做:

function my_scripts_method() {
  wp_deregister_script( \'jquery\' );
  wp_register_script( \'jquery\',    \'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js\');
  wp_enqueue_script( \'jquery\' );
}    

if (!is_admin()) add_action(\'wp_enqueue_scripts\', \'my_scripts_method\');
但我已经读过一篇文章,不应该取消核心捆绑脚本的注册,而将其替换为其他版本。所以我把它从函数文件中删除了。

现在的问题是,我已经放弃了这一点,我的jquery脚本都无法工作。例如,“我的图像”滑块。我这样称呼他们的剧本:

// Enqueue Nivo Slider
function maglite_add_nivo() {
    wp_enqueue_script( \'nivoslider\', get_template_directory_uri() . \'/js/jquery.nivo.slider.pack.js\', array( \'jquery\' ), false, true );
}
add_action( \'wp_enqueue_scripts\', \'maglite_add_nivo\' );
它现在不起作用了,我猜这与jquery没有初始化或其他原因有关。

我的控制台中出现了一些类型错误,这与我添加的nivo滑块有关。特别是这一行:$(window).load(function() { 控制台显示:

TypeError: \'undefined\' is not a function (evaluating \'$(window)\')

我觉得在包含需要jquery的自定义脚本方面,我缺少了一个核心步骤。我还是应该让jquery排队,还是不需要对jquery和排队做任何事情?

1 个回复
SO网友:cjbj

根据注释,这种错误是由WordPress在noconflict mode. 最常见的解决方法是将所有函数包装到脚本文件中:

jQuery(document).ready(function($) {  ... scripts ... }
另一个风险更大的选项是通过以下方式启动脚本文件来关闭noconflict模式:

$ = jQuery.noConflict();

结束

相关推荐

单独的jQuery是否适用于个人评论?

到目前为止,我已经设计了此功能,以便在每个评论下方的前端显示评级星:add_filter( \'comment_text\', \'additional_fields\' ); function additional_fields ($below) { global $comment; if(!get_comment_meta( get_comment_ID(), \'rating\', true ) ) { $ratsec = \'<