WordPress

slickでレスポンシブ記事スライダーを作成!万能jQueryプラグイン

2020年9月8日

slick」はスライダーを簡単に実装できるjQueryベースの有名なプラグインです。

今回、WordPressの新着記事スライダーを実装する必要がありました。もちろんレスポンシブで。

WordPressには、記事スライダーを簡単に実装できるプラグインが複数あるので、それらも試してみましたが、無料プラグインでは、カスタマイズの制限があり、思い通りに実装できませんでした。

そこで今回は、「slick」を用いてレスポンシブな記事スライダーを作成したので、その方法を備忘録としてまとめました。

レスポンシブ記事スライダーの完成イメージ

記事スライダーを実際に実装したイメージは、下記のようになります。

新着記事を4件×2行の8件で表示し、8件ずつスクロールできるようになっています。

※オートスクロールはオフにしています。

スマホでの表示は、下図のように2件×2行の表示で、4件ずつスクロールできるようにしています。

記事スライダーの完成型のコード

まずは、完成したコードをご紹介します。

<div class="news-slide">
  <!--ループ開始-->
  <?php $args = array(
    'posts_per_page' => 40,
    'post_type' => array( 'post', 'construction' )
      );
  $my_query = new WP_Query( $args );?>
  <?php if($my_query -> have_posts()) : while($my_query -> have_posts()):$my_query->the_post(); ?>
    <div class="news-item">
      <!-- サムネイル表示 -->
      <?php if ( has_post_thumbnail() ) : ?>
        <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
      <?php elseif (get_field('photo1')) : ?>
        <a href="<?php the_permalink(); ?>"><img src="<?php the_field('photo1'); ?>" alt=""></a>
      <?php else : ?>
        <a href="<?php the_permalink(); ?>"><img src="<?php echo get_template_directory_uri(); ?>/img/post-thumb.jpg" alt=""></a>
      <?php endif; ?>
      <!-- 投稿タイプの条件分岐 -->
      <?php if (get_post_type() === 'construction' ) :?>
        <p class="cat01"><a href="<?php echo home_url(); ?>/construction/">施工実績</a></p>
        <p class="date"><?php the_time('Y/m/d'); ?></p>
      <?php else : ?>
        <p class="cat02"><a href="<?php echo home_url(); ?>/category/news/">新着情報</a></p>
        <p class="date"><?php the_time('Y/m/d'); ?></p>
      <?php endif; ?>
      <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
    </div>
  <?php endwhile; else : ?>
    <p>記事がありません。</p>
  <?php endif; ?>
  <?php wp_reset_postdata(); ?>
</div>

CSSは割愛させていただきます。

JSコードは下記です。

$(document).ready(function(){
	$('.news-slide').slick({
	  autoplay: false,
	  infinite: true,
	  dots: false,
	  prevArrow: '&lt;img class="slick-prev" src="/img/arrow-left.png" alt="前へ"&gt;',
	  nextArrow: '&lt;img class="slick-next sp-hide" src="/img/arrow-right.png" alt="次へ"&gt;',
	  rows: 2,
	  slidesPerRow: 4,
	  responsive: [{
		breakpoint: 767,
		settings: {
		  rows: 2,
		  slidesPerRow: 2,
		}
	  }]
	});
});

前提条件として、「投稿(新着情報)」と「カスタム投稿(施工実績)」の新着記事をまとめて表示しているので、コードが少し長くなっていますが、普通に「投稿」のスライダーなら、もっとスマートになります。

今回「slick」を利用してみて感じたのは、本当に万能のjQueryプラグインだということ。

自分が知らなかっただけで、単純なスタイダーが作成できだけでなく、様々なカスタマイズができることを発見できました。

-WordPress

Copyright© かなブログ , 2024 All Rights Reserved.