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

以前の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;	
   }

}

設置

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

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

画像を追加をクリック

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

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

残りの画像も同様に設定

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

RECOMMEND

CONTACT

Webサイト作成は、是非
CXG DESIGNへご検討ください。