公式ドキュメントは英語のみ。ネット上の日本語記事の多くは古い実装方法のまま止まっています。
- 全コントロールタイプを網羅
- 2025年6月アップデート(useBlockProps)対応済み
- エラー対処法まで掲載
1. インストールと初回ブロック作成
インストール
まずはLazy Blocks公式サイトで最新の機能・料金プランを確認しておきましょう。無料版・Pro版の違いもここで一通り把握できます。
確認したら、WordPress管理画面の「プラグイン」→「新規追加」で「Lazy Blocks」を検索し、インストール・有効化します。有効化すると、左メニューに「Lazy Blocks」という項目が追加されます。
なお、条件分岐やPosts/Taxonomy/Users連携などPro版の機能が最初から必要だと分かっている場合は、無料版を入れる前に公式サイトのPro版ページから直接申し込む方が二度手間になりません。
初めてのブロックを作る
この時点で保存すれば、投稿画面の「+」ブロック追加メニューに、作成したブロックが表示されるようになります。
💡 このページで使われているダウンロードカード・料金表などの装飾ブロックは、すべて Lazy Blocks(Pro)で自作したものです。 無料テンプレートを見る
2. コントロールの種類一覧
Lazy Blocksには複数のコントロール(入力フィールドの種類)が用意されています。主なものは以下の通りです。
| コントロール | 用途 | 備考 |
|---|---|---|
| Text | 一行テキスト | 見出しや短い文言 |
| Textarea | 複数行テキスト | 概要文など |
| Rich Text | リッチテキスト(WYSIWYG) | 太字・リンクなどの装飾が可能。無料版で使用可 |
| Number | 数値 | |
| Checkbox / Toggle | チェックボックス・トグル | 表示/非表示の切り替え等 |
| Radio / Select | 単一選択 | |
| Image / Gallery | 画像・複数画像 | メディアライブラリ連携 |
| URL | リンクURL | |
| Color Picker | カラーピッカー | |
| Date / Time | 日付・時刻 | |
| Range | スライダー | |
| Repeater | 繰り返しフィールド | 無料版で使用可能。詳細は次章 |
| Posts / Taxonomy / Users | 投稿・タクソノミー・ユーザー選択 | Pro版限定 |
| Message / Code Editor | 説明メッセージ・シンタックスハイライト付きコード欄 | Pro版限定 |
無料版とPro版の境界で特に重要なのは、Repeater(繰り返しフィールド)が無料版で使えることです。ACFではこの機能はPro版限定のため、ここがLazy Blocksを選ぶ大きな理由になります。
3. Repeater Controlの使い方
基本設定
Controlsタブで「Repeater」を追加し、その中にサブフィールド(Text、Image など)を好きなだけ追加します。フロントエンド側では、追加したサブフィールドの数だけ繰り返し出力されます。
注意点:ネストされたリピーターは非対応
リピーターの中にさらにリピーターを入れる「入れ子構造」は公式に非対応とされています。
複数の独立したリピーターに分割する設計を検討してください。
4. 出力方法の使い分け(PHP/Handlebars/テーマテンプレート)
Lazy Blocksでは、ブロックの出力方法を3種類から選べます。
| 方法 | 向いているケース |
|---|---|
| PHP | 条件分岐やエスケープ処理など、柔軟な制御が必要な場合。本サイトのサンプルコードもこの形式 |
| HTML + Handlebars | シンプルな出力で、テンプレートエンジン的な書き方をしたい場合 |
| テーマテンプレートファイルを指定 | 既存のテーマ内のPHPファイルとしてブロックコードを管理したい場合。バージョン管理(Git)と相性が良い |
重要な注意点
Lazy BlocksのPHP出力コードはeval()によって実行される仕様です。そのため、名前付きの関数宣言(function my_func(){}のような書き方)をコード内に含めることはできません。無名関数や直接処理を書く形にしてください。
5. ラッパーdiv制御の最新方法
Lazy Blocksは初期状態で、出力したブロックを自動的に<div>で囲みます。このラッパーdivを削除・制御したい場合の方法が、2025年にアップデートされました。
- 古い方法(非推奨)
-
PHP
add_filter('lzb/block_render/allow_wrapper', '__return_false');
このフィルターは2025年6月リリースのv4.0.0で一度削除されました。
既存ブロックが壊れるのを防ぐためv4.0.1で復活していますが、現在は非推奨扱いで、管理画面に移行を促す通知が表示されます。
ネット上の解説記事の多くは、いまだにこの方法を「正解」として紹介していますが、情報が古いので注意してください。
- 現在の推奨方法
-
ブロックコード側で
useBlockProps()相当の仕組みを使い、自分でラッパー要素を制御する方式に移行することが推奨されています。新規にブロックを作る場合は、この最新の方式に沿って設計することをおすすめします。
6. InnerBlocksの正しい使い方
子ブロックを内包できる「InnerBlocks」機能には、2つの実装方法があります。
- 旧方式:Inner Blocksコントロール(非推奨)
-
以前はControlsタブから「Inner Blocks」という項目を追加するだけで使えましたが、2023年6月リリースのv3.4.0で非推奨になり、将来のアップデートで削除される予定です。新規に作るブロックでは使わないでください。
- 現行の推奨方式:
<InnerBlocks />コンポーネント -
Controlsタブでは追加しません。代わりに、ブロックの出力コード(PHP/HTML+Handlebars/テーマテンプレート)内に直接
<InnerBlocks />というタグを書き込みます。PHP<div class="custom-layout"> <h3>Content Section</h3> <InnerBlocks allowedBlocks="[ 'core/paragraph', 'core/image' ]" /> </div>allowedBlocks:中に配置できるブロックの種類を制限template:あらかじめ決まった構成をテンプレートとして用意1つのブロックにつき
<InnerBlocks />は1つだけ使用可能
【移行手順】
①ブロックの出力コード(フロントエンド・エディタ両方)に<InnerBlocks />を追加
②Controlsタブから旧「Inner Blocks」コントロールを削除、の2ステップです。
ラッパーdivの制御:InnerBlocksエリアにも自動でラッパーdivが付きます。消したい場合は次のフィルターを使います(第5章で紹介したブロック全体用のallow_wrapperフィルターとは別物です)。PHPadd_filter( 'lazyblock/あなたのブロックslug/allow_inner_blocks_wrapper', '__return_false' );
PHP/テーマテンプレートで<InnerBlocks />を使う場合、ブロック設定の「Code output in editor」を「Display always」にしないと、エディタ上で子ブロックを追加する操作欄が表示されません。ここでつまずく例が公式サポートフォーラムでも複数見られます。
7. エクスポート・インポート
作成したブロックは、Lazy Blocksの管理画面から個別に、あるいはまとめてJSON/PHP形式でエクスポートできます。
- JSON形式:他のサイトへ同じブロックを移植したいときに便利。管理画面からインポート可能
- PHP形式:テーマやプラグインのコードとして直接組み込みたいときに使用
案件ごとに同じようなブロック(お知らせボックス、スタッフ紹介など)を使い回すことが多い制作者にとって、このエクスポート機能は特に有用です。
自分専用の「ブロック部品ライブラリ」を育てていくような使い方ができます。
条件分岐・投稿連携・CSS個別管理。実務で「あったらいいな」が揃うのが次に紹介するPro版です。
- 条件分岐で編集画面がスッキリ整理される
- 投稿・カテゴリ・ユーザーとの連携が可能に
- ブロックごとにCSS/JSを持ち歩ける
8. Pro版でできること
無料版だけでも実務レベルのブロックは十分作れます。ただ、いくつか実際に使ってみると「これは地味に効く」と感じるPro限定機能があるので、具体的な場面とあわせて紹介します。
Controls Conditions:入力欄を出したり隠したりできる
例えば「CTAボックス」ブロックを作ったとします。
「セール中かどうか」のトグルを用意して、オンのときだけ「割引率」の入力欄を表示する——こういう条件分岐が無料版だと組めません。
結果、使わない設定項目まで常にズラッと並ぶ、少し不親切な編集画面になりがちです。
Controls Conditionsを使うと、必要なときだけ必要な項目が現れる、まるで市販のプラグインのような編集画面が作れます。自分だけが使うならまだしも、クライアントやチームメンバーに編集を任せる場面では、この差はかなり大きいです。
Posts / Taxonomy / Users Control:サイトの中身と直接つながる
無料版のフィールドは基本的に「その場でテキストや画像を入力する」ものですが、Pro版ではサイト内にすでにある投稿・カテゴリ・ユーザーを選んでフィールドに入れられます。
「関連記事」ブロックで実際の投稿から3つ選ぶ、「執筆者紹介」ブロックでユーザー一覧から選ぶ——ACFの投稿オブジェクト・ユーザーフィールドに相当する機能で、ここが使えるようになると、ACF・SCFからの乗り換えでも機能面の不満がほぼなくなります。
Styles & Scripts:ブロックごとにCSS/JSを持ち歩ける

ブロックのビルダー画面内で、そのブロック専用のCSS・JSを直接書いて管理できる機能です。通常、ブロックの見た目を整えるにはテーマのfunctions.phpやスタイルシートに別途コードを追記する必要がありますが、この機能を使うとブロック自体が「見た目込みで完結したパーツ」になります。
案件をまたいで同じブロックを使い回したい人にとっては特に相性が良く、エクスポートした1つのJSONファイルの中にCSS/JSも含まれるので、次の案件でインポートするだけですぐ同じ見た目で使えます。
YuuPHPの中に直接<style>タグでCSSを書くと、ブラウザにキャッシュされないし、 同じブロックを1ページで何回も使うとCSSが毎回重複して出力されちゃうんですよね。 地味に表示速度に響くので、サイトを軽く保つ意味でもこの機能は結構ありです。
Panels & Dividers:編集画面をグループ分けして整理できる
入力項目が10個、20個と増えてくると、編集画面は縦に長くなり見づらくなります。Panels & Dividersを使うと、「基本設定」「デザイン設定」「上級者向け設定」のように項目をグループ化し、パネルごとに折りたたんで表示できます。
複雑なブロックほど恩恵が大きく、特にクライアントに納品するようなブロックでは、必要な項目だけをパッと見つけられる画面にできるかどうかで、後々の「使い方がわからない」という問い合わせの数が変わってきます。
SEO Enhancements:Yoast・Rank Mathとの相性問題を解消
意外と見落とされがちですが、独自ブロックの中に書いた文章は、Yoast SEOやRank Mathのコンテンツ解析(キーワード出現率や読みやすさのチェックなど)にうまく認識されないことがあります。SEO Enhancementsは、この解析対象にカスタムブロックの内容もきちんと含められるようにする機能です。SEOを意識した記事作りをしている人には地味に重要なポイントです。
こうして並べてみると、Pro版は「無料版でできないことを無理やり足す」というより、自分やクライアントが毎日触る編集画面そのものを快適にする方向の機能が中心だと分かります。無料版でリピーターまで使えることを考えると、コスパは十分に見合っていると思います。
料金プラン
| プラン | 料金(年額) | 対象サイト数 |
|---|---|---|
| Personal | $49 | 1サイト |
| Freelancer | $169 | 20サイト |
| Agency | $299 | 無制限 |
参考までに、ACF Proは$49(1サイト)〜$249(無制限)という価格帯です。Lazy Blocksは無料版の時点でリピーター機能を含んでいるため、「まず無料で試して、条件分岐や投稿連携が必要になったらPro版を検討する」という進め方が現実的です。
Pro版の申し込みは、プラグイン管理画面内の「Upgrade」ボタンからでも可能ですが、こちらの公式サイトのPro版ページから直接申し込んでいただくと、当サイトの検証・記事作成の励みになります。機能は同じなので、お手数でなければご協力いただけると嬉しいです。
9. よくあるエラーと対処法
実際にLazy Blocksでどこまでのデザインが作れるかは、Arkhe Blocksの無料版が使えなくなった人へ|安全な代替手段で紹介している自作ブロックの実例も参考になります。
この記事で解説した内容を、インポートするだけで使える形にまとめました。
- コピペ不要、インポートするだけ
- Panel・Repeaterなど実装済みブロックが手に入る
- メールアドレス登録も不要
まとめ
Lazy Blocksは無料版だけでもリピーター機能を含む実務レベルのブロックが作成できる、数少ない選択肢です。ラッパーdiv制御やInnerBlocksの仕様は今後もアップデートされていく可能性があるため、このページも随時更新していく予定です。

