「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: '<img class="slick-prev" src="/img/arrow-left.png" alt="前へ">', nextArrow: '<img class="slick-next sp-hide" src="/img/arrow-right.png" alt="次へ">', rows: 2, slidesPerRow: 4, responsive: [{ breakpoint: 767, settings: { rows: 2, slidesPerRow: 2, } }] }); });
前提条件として、「投稿(新着情報)」と「カスタム投稿(施工実績)」の新着記事をまとめて表示しているので、コードが少し長くなっていますが、普通に「投稿」のスライダーなら、もっとスマートになります。
今回「slick」を利用してみて感じたのは、本当に万能のjQueryプラグインだということ。
自分が知らなかっただけで、単純なスタイダーが作成できだけでなく、様々なカスタマイズができることを発見できました。