自定义帖子类型光滑滑块“$不是函数”

时间:2020-03-24 作者:pressword

我正在尝试使用自定义帖子类型创建滑块rt_testimonial. 我相信我已经完成了所有设置,但控制台中出现了一个错误:

TypeError:$不是函数

以下是我所做的:

在my\\u functions的my mu plugins文件夹中。php我创建了一个post类型rt_testimonial. (此部件正在工作)

在my\\u functions的my mu plugins文件夹中。php我创建了一个简短的代码来调用我的帖子:

add_shortcode(\'fellowship-testimonials\', \'rt_show_testimonials\');
function rt_show_testimonials() {
  $testimonialQuery = new WP_Query(array(
    \'post_type\' => \'rt_testimonial\',
    \'posts_per_page\' => -1,
    \'order\' => \'ASC\'
  ));
  if ($testimonialQuery->have_posts()) {
    $testimonials = \'<div class="testimonial-slider">\';
    while($testimonialQuery->have_posts()){
      $testimonialQuery->the_post();
      $testimonials .= \'<div class="featured-image-slider testimonial-item">
                <div class="testimonial-caption">\'.get_the_content().\'</div>
                <div class="testimonial-author">\'.get_the_title().\'</div>
               </div>\';
    }
    $testimonials .= \'</div>\';

  } else { 
    $testimonials = \'no posts\';
  }
  wp_reset_postdata();
  return $testimonials;
}
在我的子主题文件夹中,我添加了slick目录(我从这里下载:https://kenwheeler.github.io/slick/

meetheme/slick/ 所有光滑的文件都在这里。

然后我做了一个光滑的初始化。js文件并将其放入同一目录中:

$(document).ready(function(){
  $(\'.testimonial-slider\').slick({
    infinite: true,
    slidesToShow: 3,
    slidesToScroll: 3
  });
});
最后,在我的孩子主题函数中。php我将其放入脚本队列:

add_action(\'wp_enqueue_scripts\', \'wp_enqueue_slick_scripts\', 999);

function wp_enqueue_slick_scripts(){

    //add slick slider
    wp_register_style(\'slickcss\', get_stylesheet_directory_uri() . \'/slick/slick.css\' );
    wp_register_style(\'slickcsstheme\', get_stylesheet_directory_uri() . \'/slick/slick-theme.css\' );

    //load slick js
    wp_register_script(\'slickslider\', get_stylesheet_directory_uri() . \'/slick/slick.min.js\', array(\'jquery\'), \'\', true );

    ////load slick initiate script
    wp_register_script( \'slickinit\', get_stylesheet_directory_uri() . \'/slick/slick-init.js\',  array( \'jquery\', \'slickslider\' ) );

    // load slick on homepage
    if ( is_front_page() ) {
        wp_enqueue_style( \'slickcss\' );
        wp_enqueue_style( \'slickcsstheme\' );
        wp_enqueue_script (\'slickslider\');
        wp_enqueue_script (\'slickinit\');
    }
}
当我用我的短代码加载页面时,我希望是滑块,但我得到的所有帖子都是一个接一个加载的。在我的控制台中,我得到了错误TypeError: $ is not a function

我做错了什么?

我基于slick网站和堆栈页面:slick slider as custom post type

1 个回复
最合适的回答,由SO网友:RiddleMeThis 整理而成

如果要使用$ 而不是jQuery 你可以这样包装你的JS代码。。。

(function ($) {
    ...you js code
})(jQuery);
或者使用noConflict(),将其放在JS的顶部。。。

var $ = jQuery.noConflict();
当然,您也可以替换所有$ 具有jQuery.

任何这些都可以消除您的错误。