
WordPress 7.2開発ロードマップとGutenberg 23.8/23.9 — 9月の開発者ラウンドアップ
DataViewsの「Cannot unlock an object」が消えるまで
まず、[Gutenberg 23.9周辺で地味に刺さっていたバグの話。@wordpress/dataviews](/articles/composertophpnocui-ruo-xing-kai-fa/)を同梱しているプラグインで「Cannot unlock an object that was not locked before」が出るやつだ。原因を追うと単純で、DataViewsは@wordpress/private-apisのプライベートAPIを叩いているのに、パッケージとしては別ファイルとして配信されている。結果、ランタイム上に@wordpress/private-apisのコピーが二つ並ぶと、お互いのオブジェクトをアンロックできない。
これは「同じ苦労を味わった同志」なら思わず溜息が出る類の話で、ビルド設定で@wordpress/private-apisの解決をエイリアスで強制的に一本化する力技で回避してきた現場も少なくないはずだ。修正トラックはDataViewsから@wordpress/private-apis依存を完全に切り離す方向で、付随してCalendar/RangeCalendarが@wordpress/uiへ、ValidatedInputControlなどのValidated*系コントロールが公開昇格している。要は「プライベートAPIに寄生していたコンポーネントが、やっと正式な置き場所を見つけた」というわけだ。
力技での回避は後方互換的にまだしばらく生きるが、コア側の修正が入りつつある以上、運用でカバーし続ける理由は薄い。
ブロックキーボードショートカットが「設定可能なもの」になる
2022年からハードコードされていた「Alt+Shift+2で段落をHeading 2に変換」の挙動が、Gutenberg 23.9でようやく宣言可能なAPIになった。バリエーション側は単一のshortcutオブジェクト、トランスフォーム側はshortcuts配列(任意のvariationName付き)として指定する形だ。
運用側の旨味は想像以上にある。独自ブロック変換を複数追加している案件では、ブロックスイッチャーに同じ項目が何度も並んでしまう現象を、これまでは自前で避けるコードを書かざるを得なかった。variationNameで束ねれば、一つのトランスフォームが六つのショートカットを保持しつつ、UI上は一度しか出ない。地味だが、ユーザーテストで「変換候補が多すぎる」と苦情を受けていたケースでは即日効く改修だ。
7.2スケジュールとSite Editor v2の進捗
WordPress 7.2 Beta 1は10月20〜22日、最終リリースは12月8〜10日のスケジュールが提示されている。Gutenberg 23.9にはSite Editor v2(Bootパッケージ)関連のPRが約20件並び、Identityルート、Global Styles編集付きのテーマプレビュー、登録済みプラグインのマウント、エンティティ間のキャンバスナビゲーション、未保存変更の警告、テーマサポートに紐づくテーマ画面などが含まれている。コントリビュートガイドラインも「Site Editor機能を実装するならextensible site editorにも寄越せ」と明示する方向に改訂されており、まだexperimentalだが、Site Editorを拡張している案件は触れておいて損はない。
Code Referenceの方は、Playground経由でブラウザ実行できるサンプルがDocBlocksに直接書けるようになっており、php interactiveフェンスを使う。ドキュメントと実コードが同じファイルに同居する状態は、レビューの負荷を確実に下げるはずだ。
ここからは段取りの話。10月のBeta 1までには、対象案件のステージングをtrunk + 最新Gutenberg、またはPlaygroundで一周回しておく。Site Editorを拡張しているなら、extensible site editorの進捗を必ず追う。DataViews絡みの「突然ロック解除エラーが出る」というチケットを冬に切りたくないなら、今のうちに依存構成を一本化しておく。
結局のところ、今回のリリースは「派手な新機能」より「地味な負債の返済」に比重が置かれている。CMS運用者にとっては、ようやく正攻法が通る場面が増えつつある、というのが現場の手触りだ。