slick

目次

WordPressでの使い方

シンプルなパターン

functions.php

<?php
function enqueue_custom_styles() {
    wp_enqueue_style('destyle', 'https://cdn.jsdelivr.net/npm/destyle.css@4.0.1/destyle.css');
    wp_enqueue_style('custom-style', get_template_directory_uri() . '/assets/css/style.css', array('destyle'));

    // slick-carouselのスタイルシートを読み込む
    wp_enqueue_style('slick-carousel', 'https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css');
    wp_enqueue_style('slick-carousel-theme', 'https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick-theme.css');
}
add_action('wp_enqueue_scripts', 'enqueue_custom_styles');

function enqueue_custom_scripts() {
  // jQueryを読み込む
  wp_enqueue_script('jquery', 'https://code.jquery.com/jquery-3.5.1.min.js', array(), null, true);
  
  // slick-carouselのスクリプトを読み込む
  wp_enqueue_script('slick-carousel', 'https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js', array('jquery'), null, true);
  
  // ローカルのスクリプトを読み込む
  wp_enqueue_script('custom-script', get_template_directory_uri() . '/assets/js/script.js', array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'enqueue_custom_scripts');

index.php

    <div class="slider">
      <div>
        <div class="slider-img"><img src="<?php echo get_template_directory_uri(); ?>/assets/image/works1.jpg" alt=""></div>
        <p>スライド1</p>
      </div>
      <div>
        <div class="slider-img"><img src="<?php echo get_template_directory_uri(); ?>/assets/image/works2.jpg" alt=""></div>
        <p>スライド2</p>
      </div>
      <div>
        <div class="slider-img"><img src="<?php echo get_template_directory_uri(); ?>/assets/image/works3.jpg" alt=""></div>
        <p>スライド3</p>
      </div>
      <div>
        <div class="slider-img"><img src="<?php echo get_template_directory_uri(); ?>/assets/image/works4.jpg" alt=""></div>
        <p>スライド4</p>
      </div>
      <div>
        <div class="slider-img"><img src="<?php echo get_template_directory_uri(); ?>/assets/image/works5.jpg" alt=""></div>
        <p>スライド5</p>
      </div>
      <div>
        <div class="slider-img"><img src="<?php echo get_template_directory_uri(); ?>/assets/image/works6.jpg" alt=""></div>
        <p>スライド6</p>
      </div>
    </div>

script.css

// 「$」マーク→jQuery
jQuery(document).ready(function(){
    jQuery('.slider').slick({
    autoplay: true,
    dots: true,
    slidesToShow: 3, // デフォルトは3つ並べて表示
    responsive: [
        {
        breakpoint: 768, // 768px以下になったら
        settings: {
            slidesToShow: 1 // スライド1つだけ表示
        }
        }
    ]
    });
});

style.css

.slider-img {
    padding: 1rem;
}

.slider-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;

}

最新の投稿をスライダーで表示する、矢印をカスタム

slider.php

<?php
// 最新の投稿を取得
$args = array(
    'post_type' => 'post',
    'posts_per_page' => 5, // 表示する投稿数
    'orderby' => 'date',
    'order' => 'DESC'
);
$latest_posts = new WP_Query($args);

if ($latest_posts->have_posts()) : ?>
    <div class="slider-container">
        <div class="slider">
            <?php while ($latest_posts->have_posts()) : $latest_posts->the_post(); ?>
                <div class="slider-item">
                    <?php if (has_post_thumbnail()) : ?>
                        <div class="slider-img">
                            <a href="<?php the_permalink(); ?>">
                                <?php the_post_thumbnail('medium'); ?>
                            </a>
                        </div>
                    <?php endif; ?>
                    <h2 class="slider-title">
                        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                    </h2>
                </div>
            <?php endwhile; ?>
        </div>
    </div>
    <?php wp_reset_postdata(); ?>
<?php else : ?>
    <p>最新の投稿がありません。</p>
<?php endif; ?>

script.js

// 「$」マーク→jQuery
jQuery(document).ready(function(){
    jQuery('.slider').slick({
    autoplay: true,
    dots: true,
    arrows: true, // 矢印ボタンを表示

    // 「slick-prev」「slick-next」とクラス名を付けると、
    // slick-theme.cssのstylesheetが適用されてしまう
        prevArrow: '<button type="button" class="custom-prev-arrow"></button>',
        nextArrow: '<button type="button" class="custom-next-arrow"></button>',
    slidesToShow: 4, // デフォルトは3つ並べて表示
    responsive: [
        {
        breakpoint: 768, // 768px以下になったら
        settings: {
            slidesToShow: 2,
            slidesToScroll: 1,
            centerMode: true,
            centerPadding: '10%', // 両サイドの見えている部分の幅
        }
        }
    ]
    });
});
デスクトップ表示 (4スライド) モバイル表示 (2スライド) カスタム矢印 ドット・ナビゲーション

参考サイト

https://delt.co.jp/article/382


https://kenwheeler.github.io/slick/

この記事を書いた人

目次