今まで WordPress で ACF(Advanced Custom field)を多く使ってきましたが、gutenberg になってからはプラグインのLazy Blocksを使い始めています。Lazy Blocks は簡単にブロックを作成できる便利なプラグインです。今回初めて Lazy Blocks の Repeater ブロックを使い「スタッフ紹介」のブロックを作成したので、その手順について詳しく紹介していきます。

目次

  1. ブロックの作成方法
  2. Repeater ブロックの作成
  3. 子ブロックの作成
  4. ブロックを出力する設定
  5. ページでブロックを利用する
  6. まとめ

1.ブロックの作成方法

基本的な構成は ACF と同じで、リピーターブロック(リピーターフィールド)の中に子ブロック(サブフィールド)を入れて入れ子の状態にします。
ACF と違うのは、出力用のコードをテンプレートに直接書くのではなく、Lazy Blocks の設定の入力欄に記入します。
また利用できる記述が複数あり、PHP の他に「HTML + Handlebars」が使えます。Handlebars は Javascript のテンプレートエンジンで、記述がシンプルで管理しやすいのが特徴です。

今回はよくあるスタッフ紹介のブロックを作成していきます。
完成すると下記のようになります。

001

では、最初に大枠のブロック(スタッフ紹介)から作成していきます。

2.Repeater ブロックの作成

下記の内容でブロックを追加します。

  • Title: スタッフ紹介
  • Slug: block-staff
  • Icon: 人のマーク
  • Category: 埋め込み

001

最初に大枠のブロックを登録したので、次はそのブロックで表示させる中身を登録します。
content の+ボタン(Add Control)をクリックして、Repeaterブロックを設定していきます。

001s

下記の内容でブロックを設定します。

  • Title: スタッフ紹介
  • Slug: staff-list
  • Type: Repeater
  • Row Label: スタッフ
  • Minimum Rows: 「1」
  • Maximum Rows: 「10」

Maximum Rows 最大値は 10 にしましたが、必要に応じて変更してください。

001

これで Repeater ブロックの作成は完了です。
次に Repeater ブロックに子ブロックを作成していきます。

3.子ブロックの作成

スタッフ紹介の下の「Show Child Controls」をクリックし、子ブロックを追加していきます。

001

最初に「名前」を下記のように設定します。

  • Label: 名前
  • Name: staff-name
  • Type: Text

001

続けて「写真」の設定を行います。

  • Label: 写真
  • Name: staff-image
  • Type: Image

001

最後に「詳細」の設定を行います。

  • Label: 詳細
  • Name: staff-detail
  • Type: Classic Editor(WYSIWYG)

Type を Classic Editor(WYSIWYG)にし、いろいろ入力できるようにしています。

001

これで子ブロックの作成は完了です。
ブロックは下記のようなカタチになっています。

001

4.ブロックを出力する設定

入力された内容を記事に出力するには、code の欄に入力します。

code の作成には下記の 3 種類から選べます。

  • HTML + Handlebars
  • PHP
  • Theme Template

通常は「HTML+Handlebars」か「PHP」を利用します。

次に、今回のブロックを「HTML+Handlebars」と「PHP」の 2 つの方法で記載してみました。

HTML + Handlebars の場合

Code の Output Method で「HTML + Handlebars」を選択し、 Frontend フィールドに下記のコード入力します。

001

Lazy Blocks の記述方法はLazy Blocks のマニュアルをご覧ください。php と Handlebars 両方の記載が掲載されています。

今回参考にしたのは下記のページです。

PHPの場合

Code の Output Method で「PHP」を選択し、Frontend フィールドに下記のコード入力します。

001

これでブロックの作成は完了です。 最後に画面右上の公開ボタンを押してください。

Lazy Blocks の一覧を見ると、「スタッフ紹介」が登録されています。 001

5.ページでブロックを利用する

スタッフ紹介のページを作成し、ブロックを追加します。 ブロックの中でスタッフ紹介を選択してください。

001

下記のブロックが追加されています。

001

ブロックの入力画面はこのようになるので、入力していきます。 001

表示画面で確認すると、下記のように表示されます。 001

6.まとめ

Lazy Blocks を使うことで手軽にブロックを作成できますが、Repeater ブロックを使うことで Lazy Blocks で出来る範囲が大きく広がります。いろんな形に活用できそうです。これでようやく ACF を使わなくて済みそうですね。