ACFの画像で、無限ループの横スクロールスライダーを作成。

  • Plugin
  • 以前のBLOGでは、Slickでスライダーを作成する方法を紹介しました。今回は、ACFの画像で、無限ループの横スクロールスライダーを作成する方法を紹介します。

     出典 : slick

    今回のDEMOは、カフェのイメージ写真をスライダーにしました。

    6枚の画像をスライダーにしています。

    ACF設定

    フィールドタイプは、画像です。フィールドラベルに編集画面に表示する名前、フィールド名にPHPに記入する名前を設定します。戻り値の形式は、画像配列です。ライブラリは、すべてです。

    フィールドタイプ画像

    項目設定値
    フィールドタイプ画像
    フィールドラベルスクロール画像01
    フィールド名add_scrollphoto01
    戻り値の形式画像配列
    ライブラリすべて

    同じように、他5つのフィールドを作成します。これでACF設定は、終了です。

    同じように他5つのフィールドを作成

    コード

    ループ内に下記コードを入力します。

    <ul class="scrollslider">
    	<?php
    		$image = get_field('add_scrollphoto01');
    		if( $image ):
        	$url = $image['url'];
        	$title = $image['title'];
        	$alt = $image['alt'];
        	$size = 'large';
        	$thumb = $image['sizes'][ $size ];
    	?>
    		<li>
            	<img src="<?php echo esc_url($thumb); ?>" alt="<?php echo esc_attr($alt); ?>" />
        	</li>
    	<?php endif; ?>
    	<?php
    		$image = get_field('add_scrollphoto02');
    		if( $image ):
        	$url = $image['url'];
        	$title = $image['title'];
        	$alt = $image['alt'];
        	$size = 'large';
        	$thumb = $image['sizes'][ $size ];
    	?>
    		<li>
            	<img src="<?php echo esc_url($thumb); ?>" alt="<?php echo esc_attr($alt); ?>" />
        	</li>
    	<?php endif; ?>
    	<?php
    		$image = get_field('add_scrollphoto03');
    		if( $image ):
        	$url = $image['url'];
        	$title = $image['title'];
        	$alt = $image['alt'];
        	$size = 'large';
        	$thumb = $image['sizes'][ $size ];
    	?>
    		<li>
            	<img src="<?php echo esc_url($thumb); ?>" alt="<?php echo esc_attr($alt); ?>" />
        	</li>
    	<?php endif; ?>
    	<?php
    		$image = get_field('add_scrollphoto04');
    		if( $image ):
        	$url = $image['url'];
        	$title = $image['title'];
        	$alt = $image['alt'];
        	$size = 'large';
        	$thumb = $image['sizes'][ $size ];
    	?>
    		<li>
            	<img src="<?php echo esc_url($thumb); ?>" alt="<?php echo esc_attr($alt); ?>" />
        	</li>
    	<?php endif; ?>
    	<?php
    		$image = get_field('add_scrollphoto05');
    		if( $image ):
        	$url = $image['url'];
        	$title = $image['title'];
        	$alt = $image['alt'];
        	$size = 'large';
        	$thumb = $image['sizes'][ $size ];
    	?>
    		<li>
            	<img src="<?php echo esc_url($thumb); ?>" alt="<?php echo esc_attr($alt); ?>" />
        	</li>
    	<?php endif; ?>
    	<?php
    		$image = get_field('add_scrollphoto06');
    		if( $image ):
        	$url = $image['url'];
        	$title = $image['title'];
        	$alt = $image['alt'];
        	$size = 'large';
        	$thumb = $image['sizes'][ $size ];
    	?>
    		<li>
            	<img src="<?php echo esc_url($thumb); ?>" alt="<?php echo esc_attr($alt); ?>" />
        	</li>
    	<?php endif; ?>												
    </ul>
    

    jQuerySlickを読み込みます。下記コードをJavaScriptファイルに書き込み読み込みます。

    $('.scrollslider').slick({
    	arrows: false,
    	autoplay: true,
    	autoplaySpeed: 0,
    	speed: 6900,
    	infinite: true,
    	pauseOnHover: false,
    	pauseOnFocus: false,
    	cssEase: 'linear',
    	slidesToShow: 4,
    	slidesToScroll: 1,
    	responsive: [
    		{
    			breakpoint: 769,
    			settings: {
    				slidesToShow: 2,
    		}
    		},
    		{
    			breakpoint: 426,
    			settings: {
    				slidesToShow: 1.5,
    			}
    		}
    	]
    });

    CSSでスタイルを整えます。

    .scrollslider{
    	padding: 18em 0;	
    }
    
    .scrollslider li{
    	height: 130px;
    	border-radius: 10px;
    	overflow: hidden;
    }
    
    .scrollslider li img {
        width: 100%;
    	height: 100%;
    	object-fit: cover;
    }
    
    .scrollslider .slick-slide {
        margin: 0 10px;
    }
    
    @media screen and (min-width: 1250px) {
    
       .scrollslider li{
    	   height: 200px;	
       }
    
    }

    設置

    編集画面に無限ループスライダーフィールドが作成されます。画像を追加をクリックして、メディアライブラリから画像を選択し、選択ボタンをクリックします。画像フィールドに画像が設定されます。

    残りの画像も同様に設定します。これで完成です。

    画像を追加をクリック

    メディアライブラリから画像を選択

    画像フィールドに画像が設定

    残りの画像も同様に設定

    これで今回の説明は終了です。今回はシングルページに設置しましたが、トップページや固定ページにも設置できます。フィールドの画像を変更するだけで、スライダー画像を変更できるので、便利ですね。