WordPress

php — Zgrabny suwak nie działa w wordpress

  • 18 stycznia, 2023
  • 3 min read
php — Zgrabny suwak nie działa w wordpress


Dodałem wszystkie zgrabne pliki i umieściłem je w moim fuctions.php – konsola jest czysta, nie ma teraz żadnych komunikatów o błędach. Zainicjowałem slick w moim niestandardowym pliku js i wywołałem suwak klasy z mojego bloku HTML (używam motywu WordPress 2022 z blokami Gutenberga). Suwak jednak nie działa – czy powinienem dodać najnowszą wersję jquery do mojego folderu motywu? Nie jestem pewien, co może być problemem.

W moich funkcjach.php:

function my_scripts_method() {
if ( !is_admin() ) {
  wp_enqueue_script('jquery');
 }
}
add_action('wp_enqueue_scripts', 'my_scripts_method');

//ENEQUE JS SLICK FILES
add_action( 'wp_enqueue_scripts', 'slick_register_styles' );
function slick_register_styles() {
   wp_enqueue_style( 'slick-css', untrailingslashit( get_theme_file_uri() ) . '/assets/src/library/css/slick.css', [], false, 'all' );
   wp_enqueue_style( 'slick-theme-css', untrailingslashit( get_theme_file_uri() ) . '/assets/src/library/css/slick-theme.css', ['slick-css'], false, 'all' );
   wp_enqueue_script( 'slick-js', untrailingslashit( get_theme_file_uri() ) . '/assets/src/library/js/slick.min.js', ['jquery'], false, true );
   wp_enqueue_script( 'carousel-js', untrailingslashit( get_theme_file_uri() ) . '/assets/src/carousel/index.js', ['jquery', 'slick-js'], filemtime( untrailingslashit( get_theme_file_uri() ) . '/assets/src/carousel/index.js' ), true );
}
// ENEQUE CUSTOM JS FILE
// initialize slick in here
 wp_enqueue_script('js-file', '/wp-content/themes/Twenty Twenty-Two Child/js/myscript.js', array('jquery'), '', false);

W myscript.js:

//initialize slick slider
( function( $ ) {
  class SlickSlider{
    constructor() {
      this.initiateSlider();
    }

    initiateSlider() {
      $( ".slider").slick( {
        dots: false,
        arrows: true,
        infinite: true,
        centerMode:true,
        centerPadding:'60px',  
        slidesToShow: 3,//1?
        slidesToScroll: 1,
        autoplay: true,
        autoplaySpeed: 2000, 
      } );
    }
  }

  new SlickSlider();

} )( jQuery );
//progress bar for slick slider
$(document).ready(function() {
  var $slider = $('.slider');
  var $progressBar = $('.progress');
  var $progressBarLabel = $( '.slider__label' );
  
  $slider.on('beforeChange', function(event, slick, currentSlide, nextSlide) {   
    var calc = ( (nextSlide) / (slick.slideCount-1) ) * 100;
    
    $progressBar
      .css('background-size', calc + '% 100%')
      .attr('aria-valuenow', calc );
    
    $progressBarLabel.text( calc + '% completed' );
  });
 
});

html: (wyjąłem rzeczywisty obraz tutaj)

<div class="slider">
<div class="slider-track">
<div class="slider-content">
    <div class="image">
<img src="" alt="">
 </div> 
</div>

<div class="slider-content">
  <div class="image">
<img src="" alt="">
 </div> 
</div>
</div>
  </div> <!-- end slider -->

  <div class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100">
    <span class="slider__label sr-only">
  </div>
  </span>
</div> <!-- end content -->
  </div>


Źródło

Warto przeczytać!  Jak wyświetlić mobilną wersję witryn WordPress z komputera