masakichi-code

独学エンジニアの技術ブログ

繰り返しフィールドに入れた画像をswiperとして表示するやり方

  • JavaScript
  • PHP
  • WordPress
  • プラグイン

2024.05.20(月)

『繰り返しフィールドに入れた画像をswiperとして表示したい』
『PC用画像とスマホ用画像で切り替えてスライダーさせたい』

こういった疑問に答えます。

本記事の内容

  • 繰り返しフィールドの画像からswiper表示するやり方
  • PC用画像とスマホ用画像を切り替えてスライダーさせるやり方

Webエンジニア歴2年
WordPressの運営&立ち上げ70サイト以上かかわっている

こういった私が解説していきます。

1. 繰り返しフィールドの画像からswiper表示するやり方

  • その①:プラグイン『SCF』の繰り返しフィールドを使う
  • その②:swiper用のコードを書く

その①:プラグイン『SCF』の繰り返しフィールドを使う

インストールしてなければしましょう

WordPress管理画面のメニュー『プラグイン』⇒『新規プラグインを追加』から『SCF』と検索します。

『今すぐインストール』⇒『有効化』をすると、メニューに『Smart Custom Fields』が出てきます。

フィールドを作成していきます

『Smart Custom Fields』から『新規追加』でカスタムフィールドの作成画面に入ります。
タイトルを入力して『フィールドを追加』ボタンを押します。

するとフィールドが表示されます。

左上の『繰り返し』をクリックして、繰り返し用フィールドを入力していきましょう。

グループ名はコードで使うので英語で入力しましょう。
タイプはプルダウンから『画像』を選択します。
ラベルは分かりやすい名前にしておきます。
必要なら手順も入れておくと丁寧ですね。
プレビューサイズは大きいと見づらくなるので『thumbnail』にしています。

ここまで出来たら表示させたい場所を選びます。

カスタム投稿タイプを追加していると自動で項目が出てくるので便利ですね。
『検索する投稿または固定』をクリックするとページ一覧が表示されます。

このページだけ表示したい!という場合に使いましょう。
私は『TOPページ』を選択しました。
※設定したいページIDだけでなく、固定ページや投稿ページなどのラジオボタンは選択しておきましょう

ここまで出来たら『公開』を押しましょう。
ちなみに、他の表示条件(プロフィール・タクソノミー・オプションページ)もありますが、今回は飛ばしますね。

実際に繰り返しフィールドに画像を入れていきます

設定したページの管理画面を見てみると、表示されているかと思います。

『画像選択』でメディアから画像を入れましょう。
1枚入れたらプラスボタンを押してフィールドを追加します。

間違えて追加した場合は✕ボタンで削除できます。
そして、画像を追加し終わったら更新しましょう。

次からはコードを調整して表示させていきます。

その②:swiper用のコードを書く

まずはswiperの読み込みをしていきます。

下記は読み込ませている例です。

現状(2024年5月17日時点)ではバージョン8.4.7で安定しているので、使っています。
ダウンロードして使う場合は公式サイトから落としてきます。

『swiper-bundle.min.js』をクリックするとソースコードが表示されるので、名前を付けて保存します。
同様に『swiper.min.css』も保存しましょう。

無駄な改行やスペースを除いているので容量が軽いminがおすすめです。

ファイルにswiper用のコードを書いていきます。

バージョン8.4.7用のコードはこんな感じです。
swiper側で用意しているクラス名を変更すると、動作しなくなるので注意です。

カンタンな感じだとこれだけで済みますが、適宜スタイルを当てて使いたいので、私はこうしています。

中にクラス『swiper_item』のdivタグを入れて調整しています。
なぜなら、swiper側で用意しているswiper-slideにスタイルを当ててうまく動作しなくなった経験があるからです。
このコードをベースに繰り返しフィールド用にしたのがこちら⇩

一応jsコードも書いておきますね。

補足説明をしていきます

下記コードでSCFを取得しています。
$group_countは、繰り返しフィールド数からスライダーさせるかの判断用です。
また、$key_numberはswiper-slideに追加で入れるクラス用です。

ここで実際に繰り返しフィールド数から処理をしています。

上記の条件に合致したらforeachでスライドを繰り返し出力しています。

繰り返しフィールドが1つしかないときはswiperさせず、backgroundとして出力してみました。

ここまでが、繰り返しフィールドからスライダーにするやり方でした。
長くなりましたが、次からPC用とスマホ用で切り替えるやり方をご紹介していきます。

2. PC用画像とスマホ用画像を切り替えてスライダーさせるやり方

  • その①:繰り返しフィールドにスマホ用画像を用意する
  • その②:pictureタグで切り分ける

その①:繰り返しフィールドにスマホ用画像を用意する

『Smart Custom Fields』を編集する


『サブフィールドを追加』ボタンを押しましょう。
するとサブフィールドが追加されるので、最初に追加したときのように入れていきます。

私はこんな感じでいれました。

更新ボタンを押して更新をしたら次に進みましょう。
あともう少しです。

その②:pictureタグで切り分ける

便利なタグを使います。

pictureタグの例です。
上から順に読み込んでいって、画面サイズがあっていればsorceの画像を出します。
そして、違う場合は次のimgタグを表示させます。

わざわざcssで@media screen and (max-width: 768px )を追加しなくても良いので簡潔に切り替えれるのが嬉しいですね。
このpictureタグを組み込んだ全体が下記です。

PC用画像しかない場合でも差が出ないようにpictureタグで囲んでいます。
『media=”(max-width:768px)”』となっている箇所はレスポンシブ幅に合わせてお使いくださいね。
sorceを追加するとタブレット用と細かく設定できますよ。

以上、繰り返しフィールドに入れた画像をswiperとして表示するやり方をご紹介しました。
ではまた。