WordPressにslick.jsを適用

前提

項目内容説明
テーマLightning
slickhttps://kenwheeler.github.io/slick/
表示用画像事前にメディアライブライブラリに登録しておく。
slickモジュールの配置

公式サイトからモジュールDLし、wordpressにuploadする。

~/themes/lightningの直下

slickのstyle設定

slick.min.jsへのパスを通す。

<!-------- 以下追加 -------->
<!-- slick CSS -->
<link rel="stylesheet" type="text/css" href="<?php echo get_stylesheet_directory_uri(); ?>/slick/slick.css" media="screen" />
<link rel="stylesheet" type="text/css" href="<?php echo get_stylesheet_directory_uri(); ?>/slick/slick-theme.css" media="screen" />

<style>
.slider {
  height: 53vw;
  margin-left: auto;
  margin-right: auto;
  overflow: hidden; /* 画像がはみ出ないようにする */
  width: 80vw;
}
.slick-img img {
  width: 100%;
}
@keyframes fadezoom {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.1); /* 拡大率 */
  }
}
.add-animation {
  animation: fadezoom 5s 0s forwards;
}
</style>

<!-- /slick CSS -->

<!-- jQuery -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<!-- /jQuery -->
slickの初期化用scriptの設定
<?php wp_footer(); ?>
<!-------- 以下追加 -------->
<!-- slick js -->
<script src="<?php echo get_stylesheet_directory_uri(); ?>/slick/slick.min.js"></script>
<!-- /slick js -->
<script>
$(function () {
  $(".slider")
    // 最初のスライドに"add-animation"のclassを付ける(data-slick-index="0"が最初のスライドを指す)
    .on("init", function () {
      $('.slick-slide[data-slick-index="0"]').addClass("add-animation");
    })
    // 通常のオプション
    .slick({
      autoplay: true, // 自動再生ON
      fade: true, // フェードON
      arrows: false, // 矢印OFF
      speed: 1000, // スライド、フェードアニメーションの速度1000ミリ秒
      autoplaySpeed: 3000, // 自動再生速度3000ミリ秒
      pauseOnFocus: false, // フォーカスで一時停止OFF
      pauseOnHover: false, // マウスホバーで一時停止OFF
    })
    .on({
      // スライドが移動する前に発生するイベント
      beforeChange: function (event, slick, currentSlide, nextSlide) {
        // 表示されているスライドに"add-animation"のclassをつける
        $(".slick-slide", this).eq(nextSlide).addClass("add-animation");
        // あとで"add-animation"のclassを消すための"remove-animation"classを付ける
        $(".slick-slide", this).eq(currentSlide).addClass("remove-animation");
      },
      // スライドが移動した後に発生するイベント
      afterChange: function () {
        // 表示していないスライドはアニメーションのclassを外す
        $(".remove-animation", this).removeClass(
          "remove-animation add-animation"
        );
      },
    });
});

</script>
画面へ表示する画像の設定

~/_g3/slick_image.php(新規作成)

<?php 
  $url = get_site_url();  
?>
<!-------- 以下表示する分の画像を設定 -------->
<div class="slider">
  <div class="slick-img">
    <img src=" <?php echo $url ?>/wp-content/uploads/~~~.png" >
  </div>
  <div class="slick-img">
    <img src=" <?php echo $url ?>/wp-content/uploads/~~~.png" >
  </div>
  <div class="slick-img">
    <img src=" <?php echo $url ?>/wp-content/uploads/~~~.png" >
  </div>
  <div class="slick-img">
    <img src=" <?php echo $url ?>/wp-content/uploads/~~~.png" >
  </div> 
</div>

後述
今思えば、ここはわざわざPHPで組まなくても、任意の箇所で、カスタムHTMLで↑のHTMLを貼れば良いだけでした。

Topページに、slick_image.phpを読み込ませる
<?php
if ( is_front_page() ) {
        <!-------- 追加 - START -------->
	lightning_get_template_part( 'slick-image' );
        <!-------- 追加 - END -------->
	if ( apply_filters( 'lightning_default_slide_display', true ) ) {
		LTG_G3_Slider::display_html();
	}
}

?>

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です