PHPだけで自作ブロック制作、WordPress 7.0でここまでシンプルになった話
これまでの自作ブロック環境:Lazy Blocksプラグインで作成
WordPressでオリジナルのブロックを作りたいとき、これまで Lazy Blocks というプラグインを使っていました。
GUIで入力項目を定義するだけでカスタムブロックが作れる、非常に便利なプラグインです。通常の自作ブロック制作と比べてコード量をぐっと減らせるため、重宝していました。
ただ、一点だけずっと引っかかっていたことが。。。
ブロックを他のWordPressに持ち出すとき、Lazy Blocksプラグイン自体も必要になるという依存関係の問題です。配布や移植を考えると、プラグインへの依存はできれば避けたい。そう思っていたところに、WordPress 7.0 のアップデートが来ました。
WordPress 7.0で、自作ブロックがもっと作りやすくなった
WordPress 7.0より、自作ブロックをPHPコードだけで作れる仕組みが公式に追加されました。
(参考:PHP-only block registration – Make WordPress Core)
以前は自作ブロックを作るにはPHPの他にJavaScriptのスキルが必要でしたが、今回の更新でだいぶシンプルになりました。ブロックの設定項目もある程度絞られているので、細かいUI作りに時間をとられにくくなっています。
現時点でできないこと
まだ発展途上の機能なので、できないこともあります。
画像やファイルのアップロードには非対応
入力エリアを細かくレイアウトするのはまだ難しい
Lazy Blocksと比べると、設定できる項目はまだ少ない
ただ、これはあくまで「今のところ」の話。今後のアップデートに期待しつつ、まずは手持ちのブロックを作り直してみることにしました。
Lazy Blocksで作ったブロックを、公式方式で作り直してみた
今回作り直したのは、バレーボールの試合結果を入力するカスタムブロックです。
Claude Codeに手伝ってもらいながら、Lazy Blocksで作ったものと同じ機能を新しい方式で再現しました。
旧ブロック(Lazy Blocks版)の操作画面・動画
新ブロック(PHP登録版)の編集画面(ブロックエディタ)

新旧ブロックの比較
外部プラグイン
Lazy Blocks版:Lazy Blocksプラグインが必要
新ブロック:プラグイン不要
セット数指定
Lazy Blocks版:あり
新ブロック:廃止
カテゴリ・性別区分
Lazy Blocks版:毎回手動で選択
新ブロック:投稿タイプから自動判定(手動指定も可)
主な変更点
セット数の指定を廃止しました。これまでは「何セット行ったか」を手動で入力する仕様でしたが、実際の運用では不要だったため削除。入力項目がシンプルになりました。
カテゴリと性別区分は投稿タイプから自動判定するようにしました。投稿タイプによって内容が決まっているケースがほとんどだったため、毎回選ぶ手間をなくしました。
バレーボール用として作成したブロックでしたが、バドミントンや卓球でも使えそうです。
バレーボールの試合は基本的に3または5セットで行われます。
今回作り直すうえで、セット数の制限をなくしたので他競技での5セット以上の試合でも対応可能になりました。
やってみての感想
Lazy Blocksは手軽にブロックを作れる便利なプラグインですが、「使う側の環境にもプラグインが必要」というのがずっと気になっていました。今回の新しい仕組みで、その悩みがすっきり解消できました。
画像アップロードや自由なレイアウトはまだできないので、Lazy Blocksの方が機能的には上。でも、シンプルなブロックであれば公式の方式で十分だし、余計な依存がないぶん気持ちが楽です。
まだ発展途上の機能なので、アップデートのたびに試していきたいと思います。
#WordPress #WordPress7 .0 #Gutenberg #カスタムブロック #Lazy Blocks #ClaudeCode #個人開発 #バレーボール #バドミントン #卓球
