
モーダルか別ページか?UXを最適化する「意思決定フロー」と使い分けの基準
ウェブサイトやアプリケーションを設計する際、新しい情報を表示するために「モーダル(ポップアップ)」を使うべきか、それとも「新しいページ」へ遷移させるべきかという選択に直面することがある。この判断は、単なる好みの問題ではない。ユーザーの操作フローや、情報の参照しやすさ、さらにはタスクの完了率にまで大きな影響を及ぼす重要な設計判断だ。
不適切なタイミングでのモーダル表示は、ユーザーの集中力を削ぎ、フラストレーションを溜める原因となる。一方で、些細な確認のためにページを切り替えてしまうと、元の画面に戻る手間が発生し、ユーザーが「今何をしていたか」を忘れてしまうリスクがある。どちらの選択肢も、使い方を誤ればユーザー体験を損なう凶器になり得るのだ。
本記事では、Smashing Magazineの記事を基に、モーダルと別ページの使い分けを整理する。さらに、複雑な判断を助ける「意思決定フロー(デシジョンツリー)」の考え方を紹介し、WordPressサイトやWebアプリにおける最適なUI設計の指針を提示する。この記事を読み終える頃には、自信を持って最適なコンポーネントを選択できるようになっているはずだ。
モーダル、ダイアログ、オーバーレイの違いを整理する

UI設計の議論において、これら用語は混同されがちだ。しかし、元記事の著者であるヴィタリー・フリードマン氏は、それぞれの用語には明確なニュアンスの違いがあると指摘している。まずはこれらの定義を正しく理解することが、適切なUIを選択するための第一歩となる。
モーダル(Modal)とノンモーダル(Non-modal)の決定的な違い
「モーダル」とは、そのウィンドウが表示されている間、背景にある元のコンテンツへの操作が一切できなくなる仕組みを指す。ユーザーは、モーダル内のタスクを完了させるか、閉じる操作をしない限り、元の画面に戻ることはできない。これは、システム側がユーザーの注意を完全に拘束したい場合に用いられる。
一方、「ノンモーダル」は、ウィンドウが表示されていても、背景のコンテンツをスクロールしたり、他のリンクをクリックしたりできる。これは、情報の参照を助けるためのツールチップや、画面の端に表示される通知(スナックバー)などが該当する。ユーザーのフローを遮断せず、補助的な情報を提供する場合に適している。
ダイアログ、オーバーレイ、ライトボックスの定義
ダイアログ(Dialog)は、ユーザーとシステムとの「対話」を目的とした汎用的な用語だ。オーバーレイ(Overlay)は、ページの上に重ねて表示されるパネル全般を指す。そして、ライトボックス(Lightbox)は、背景を暗く反転させてモーダル内のコンテンツを強調する視覚的な手法を指す。
アンナ・ケイリー氏の調査によれば、多くのオーバーレイは不適切なタイミングで表示され、ユーザーを邪魔しているという。特に、クリティカルな作業中に表示される強制的なモーダルは、ユーザーにとって非常にストレスフルだ。そのため、デフォルトの選択肢としては、ユーザーの自由度を奪わない「ノンモーダル」な設計を検討すべきだと元記事では述べられている。
モーダルが真価を発揮する「単一タスク」の場面

モーダルは決して「悪」ではない。適切に使えば、ユーザーが現在の場所を見失わずに、必要な作業を素早く完結させるための強力な武器になる。特に、自己完結型の短いタスクにはモーダルが最適だ。
文脈(コンテキスト)を維持するメリット
モーダルの最大の利点は、ユーザーが「現在のコンテキスト(文脈)」を維持できることだ。ページ遷移を伴わないため、元の画面のスクロール位置、入力中のフォーム、適用したフィルター設定などが保持される。例えば、WordPressのメディアライブラリはモーダル形式で開かれるが、これにより投稿編集画面から離れることなく画像を選択し、すぐに執筆に戻ることができる。
「コンテキストを維持する」とは、単にUIが残っていることだけではない。ユーザーの脳内にある「作業の記憶」を維持することを意味する。別のページに飛んでしまうと、元のページで何をしようとしていたかを思い出すのに数秒のコストがかかるが、モーダルならそのコストを最小限に抑えられる。
破壊的な操作の警告とクイックな確認
データの削除や、保存されていない情報の破棄など、取り返しのつかない操作を行う際の「最終確認」にはモーダルが非常に効果的だ。あえてユーザーの動きを止めることで、誤操作を防ぐことができる。また、設定の微調整や、フィルタ条件の選択など、数秒で終わるアクションもモーダルに向いている。
ただし、モーダル内で多くの情報を入力させたり、複数のステップを踏ませたりするのは避けるべきだ。モーダルはあくまで「寄り道」であり、長居をさせる場所ではない。作業が長引く場合は、ユーザーは背景にある情報を参照したくなり、モーダルが邪魔に感じ始めるからだ。
複雑なワークフローには「別ページ」を推奨する理由

一方で、複雑なタスクや、多くの情報を扱う場面では、モーダルではなく独立したページ(またはフルスクリーンのビュー)を用意するのが賢明だ。モーダルという「限られた枠」が、ユーザーの思考を制限してしまうからである。
複数ステップのウィザード形式はページが最適
モーダルの中にタブを設けたり、次へボタンで画面を切り替えたりする「モーダル内ウィザード」は、エンタープライズ製品などでよく見かけるが、UXの観点からは推奨されない。ステップが重なるほど、ユーザーは「今、全体のどのあたりにいるのか」という感覚を失いやすくなる。
複雑な設定フローや、複数の入力項目がある場合は、専用のページへ遷移させるべきだ。ページであれば、ブラウザの「戻る」ボタンが機能し、URLを共有することも可能になる。また、画面全体を使えるため、視覚的な階層構造を整理しやすくなり、ユーザーの認知負荷を下げることができる。
データの比較や参照が必要なケース
ユーザーが作業中に「別の画面にある数字を確認したい」「過去の履歴と見比べたい」と考える場合、モーダルは大きな障害となる。モーダルは背景を覆い隠してしまうため、情報の比較ができないからだ。このような場合、ユーザーはモーダルを閉じたり開いたりするか、あるいは同じサイトを別のタブで開くという苦肉の策をとることになる。
参照性が重要なタスクでは、新しいページを開くか、あるいは後述する「サイドドロワー(引き出し式のパネル)」を採用するのが望ましい。サイドドロワーであれば、メインコンテンツの半分を露出させたまま、サブタスクを並行して進めることができる。
モーダルを避けるべき3つのアンチパターン

元記事では、モーダルの使用を控えるべき具体的なケースが挙げられている。これらは、多くのWebサイトで「良かれと思って」行われているが、実際にはユーザー体験を阻害していることが多い。
エラーメッセージやオンボーディングでの多用
入力エラーが発生するたびにモーダルで「エラーです」と表示するのは、ユーザーの入力を妨げる行為だ。エラーメッセージは、入力フィールドのすぐ側や、画面上部の通知エリアに表示し、ユーザーがエラー内容を見ながら修正できるようにすべきだ。モーダルで表示してしまうと、エラー内容を確認するためにモーダルを閉じなければならず、修正すべき箇所を忘れてしまう。
また、新機能を紹介するオンボーディング(チュートリアル)で、何枚ものモーダルを連続で表示するのも逆効果だ。ユーザーは早くサービスを使いたいと考えており、説明を読まずに「閉じる」を連打する傾向がある。機能紹介は、ユーザーが実際にその機能を使おうとした瞬間に、控えめなツールチップなどで示すのが理想的だ。
ネスト(入れ子)構造のモーダル
モーダルの上にさらに別のモーダルを重ねて表示する「ネスト構造」は、最悪のUXの一つとされている。画面が複雑怪奇になり、どの「閉じる」ボタンがどのウィンドウに対応しているのかが分からなくなる。もしモーダル内でさらに詳細な情報が必要になった場合は、モーダルを切り替えるのではなく、インラインで情報を展開するか、サイドパネルを活用すべきだ。
UXを向上させる「意思決定フロー」の活用

では、具体的にどのように判断を下すべきか。ライアン・ノイフェルド氏が作成した意思決定フロー(デシジョンツリー)を参考に、4つのステップで考えてみよう。このフローに従うことで、直感ではなく論理的な根拠に基づいてUIを選択できる。
ステップ1:文脈維持の必要性を評価する
まず、ユーザーが「元の画面の状態」を保持したまま作業を終える必要があるかを考える。元の画面に戻ったときに、スクロール位置や入力内容がそのまま残っていることが重要であれば、モーダルやオーバーレイが候補に残る。逆に、新しいタスクが元の画面とは全く無関係なものであれば、別ページに飛ばしてしまっても問題ない。
ステップ2:タスクの複雑さと継続時間を測る
そのタスクは数秒で終わるものか、それとも数分かかるものか。1〜2つの項目を入力するだけならモーダルで十分だが、5つ以上の項目があったり、複数の画面を遷移したりする必要があるなら、ページ遷移を選択すべきだ。モーダル内での滞在時間が長くなるほど、ユーザーは「閉じ込めてられている感覚」を抱きやすくなる。
ステップ3:背景情報の参照が必要かを確認する
作業中に元の画面にあるデータをコピー&ペーストしたり、数字を見比べたりする必要があるか。もし「Yes」なら、モーダルは不適切だ。背景を完全に隠さない「ノンモーダルなサイドパネル」や、画面を分割する「スプリットビュー」を検討しよう。これにより、ユーザーは必要な情報を視界に入れながら作業を進められる。
ステップ4:最適なオーバーレイ形式を選ぶ
オーバーレイを使うと決めた場合でも、必ずしも「モーダル(背景ロック)」である必要はない。情報を表示するだけならツールチップで十分だし、作業を補助するだけなら浮動式のノンモーダル・ウィンドウが適している。ユーザーの注意を完全に引く必要がある「最後の手段」としてのみ、モーダルを選択するのが正しい設計のあり方だ。
WordPress運用におけるUI設計のヒント

WordPressサイトをカスタマイズしたり、プラグインを開発したりする際にも、この考え方は非常に役立つ。現代のWordPress(Gutenbergエディタ)は、この「モーダルを避ける」というトレンドを色濃く反映している。
サイドバー(設定パネル)の活用
Gutenbergのブロック設定は、モーダルではなく右側のサイドバーに集約されている。これは、記事の本文(コンテキスト)を見ながら、フォントサイズや色を調整できるようにするためだ。もしこれがモーダルだったら、変更を適用するたびにモーダルを閉じ、見た目を確認し、また開くという不毛な作業が発生していただろう。
独自の設定画面を作る際も、安易にポップアッププラグインを使うのではなく、WordPress標準のサイドバーUIや、インライン編集(その場での書き換え)を検討してみよう。これにより、管理画面の操作性が劇的に向上する。
CSSによるシンプルなモーダル実装例
最新のブラウザでは `
/* サイドドロワーの基本スタイル */
.side-panel {
position: fixed;
top: 0;
right: 0;
width: 300px;
height: 100%;
background: #ffffff;
box-shadow: -2px 0 10px rgba(0,0,0,0.1);
z-index: 1000;
padding: 20px;
box-sizing: border-box;
}このデモは、画面の右側に補助的なパネルを表示する「サイドドロワー」の概念を視覚化したものだ。中央のメインコンテンツを覆い隠さないため、ユーザーは情報を参照しながら作業を継続できる。※このデモはCSSの概念を視覚化したイメージである。
この記事のポイント
- モーダルは「背景を操作不能にする」ものであり、ユーザーのフローを完全に遮断する。
- 自己完結型の短いタスクや、破壊的操作の最終確認にはモーダルが適している。
- 複雑なワークフローやデータの比較が必要な場合は、別ページかサイドパネルを選択する。
- エラーメッセージやオンボーディングでのモーダル多用は、ユーザーの離脱を招くアンチパターンだ。
- 「文脈維持」「タスクの長さ」「参照の必要性」の3軸で判断する意思決定フローを活用する。
出典
- Smashing Magazine “Modal vs. Separate Page: UX Decision Tree”(2026年3月19日)

・ 複数業界における17年間のデジタルビジネス開発経験
・ ウェブサイト開発のためのHTML、PHP、CSS、Java等の実用的知識
・ 15ヶ国語対応の多言語SaaSの開発経験
・ 17年間にも及ぶ、Eコマース長期運営経験
・ 幅広い業界でのSEO最適化の豊富な経験

WordPress開発の転換点:PHPのみでGutenbergブロックを構築する方法
WordPressのブロックエディタ(Gutenberg)が登場して以来、カスタムブロックの開発にはReactやNode.jsといったJavaScriptベースの技術習得が不可欠だった。しかし、最新のアップデートにより、PHPコードのみでブロックを構築・管理できる手法が確立された。この変更は、従来のPHP中心のWordPress開発者にとって、学習コストを劇的に下げる重要な転換点となる。
Gutenberg 21.8以降で導入されたこの機能により、サーバーサイドのJavaScript環境を構築することなく、PHPの関数だけでエディタとフロントエンドの両方にブロックを表示できる。ビルドプロセスの複雑さを排除し、保守性の高いサイト制作を可能にするのが「PHP-onlyブロック」だ。
本記事では、PHPのみでブロックを登録する具体的な手順から、管理画面UIの自動生成、さらには既存のショートコードをブロック化する実践的なテクニックまでを詳しく解説する。この記事を読むことで、最新のWordPress標準に準拠した効率的な開発手法を習得できるはずだ。
PHP-onlyブロックの概要と導入のメリット

これまで、カスタムブロックを作成するには、Reactの知識に加え、WebpackやNPM(Node Package Manager)を用いたビルド環境の構築が必須であった。これは、主にサーバーサイドのPHPでサイトを構築してきた開発者にとって、非常に高い参入障壁となっていた。PHP-onlyブロックは、この障壁を取り払うために設計された仕組みだ。
なぜPHPだけでブロックが作れるようになったのか
WordPress開発チームは、ブロックエディタの普及をさらに加速させるため、従来のPHP開発者が慣れ親しんだ手法でブロックを作成できる環境を整えた。具体的には、サーバー側で登録されたメタデータをエディタ(JavaScript側)へ自動的に受け渡す「auto_register」機能が実装されたことが大きい。これにより、エディタ用のJSファイルを手動で記述する必要がなくなったのだ。
開発者にとっての3つの主要な利点
第一の利点は、学習コストの圧倒的な低減だ。ReactやNode.jsの複雑なエコシステムを学ぶ時間を、サイトの機能向上やデザインのブラッシュアップに充てることができる。第二に、フロントエンドのパフォーマンス向上が挙げられる。不要なJavaScriptの読み込みを削減できるため、ページの読み込み速度を最適化しやすい。第三に、保守性の向上だ。PHPコード一箇所でブロックの定義と出力(レンダリング)を管理できるため、コードの可読性が高まり、バグの混入を防ぎやすくなる。
基本的なPHP-onlyブロックの作り方

PHP-onlyブロックの作成は、従来の「動的ブロック(Dynamic Blocks)」の登録方法と似ているが、最大の違いはエディタ用のスクリプトを指定せずに、特定のフラグを有効にする点にある。元記事の著者は、最小限のコードでブロックを動作させる手法を示している。
register_block_type と auto_register の役割
ブロックの登録には、WordPress標準の `register_block_type` 関数を使用する。この関数の `supports` 配列内に `’auto_register’ => true` を含めることが、PHP-onlyブロックとして動作させるための鍵となる。このフラグが有効な場合、WordPressは `ServerSideRender` というコンポーネントを自動的に使用し、管理画面上でもPHPで生成されたHTMLをプレビュー表示する。
最小構成のコード例
以下は、プラグインやテーマの `functions.php` に記述することで動作する、最もシンプルなPHP-onlyブロックのコードだ。
/**
* レンダリング用コールバック関数
*/
function my_simple_php_block_render( $attributes ) {
return '<div style="padding: 20px; background: #f0f0f0; border: 2px solid #0073aa;">
<h3>🚀 PHP-only ブロック</h3>
<p>このブロックはPHPのみで生成されています。</p>
</div>';
}
/**
* ブロックの登録
*/
add_action( 'init', function() {
register_block_type( 'my-custom/php-block', array(
'title' => 'シンプルなPHPブロック',
'icon' => 'admin-plugins',
'category' => 'text',
'render_callback' => 'my_simple_php_block_render',
'supports' => array(
'auto_register' => true,
),
) );
});🚀 PHP-only ブロック
このブロックはPHPのみで生成されています。
このコードを有効にすると、ブロックエディタの追加メニューに「シンプルなPHPブロック」が表示され、設置すると即座にグレーの枠線で囲まれたプレビューが表示される。これがPHP-only開発の第一歩だ。
属性(Attributes)を活用した管理画面UIの自動生成

単にHTMLを出力するだけでなく、ユーザーがエディタ上でテキストを変更したり、オプションを選択したりできるようにするには「属性(Attributes)」を定義する必要がある。最新のGutenbergでは、PHPで定義した属性に基づいて、サイドパネル(インスペクター)の入力フィールドを自動生成する機能が追加されている。
属性の定義と入力フィールドの対応関係
属性のデータ型(type)を指定することで、WordPressは適切なUIコンポーネントを割り当てる。著者によれば、現在のところ以下のマッピングがサポートされている。
- string: テキスト入力フィールド
- number / integer: 数値入力フィールド
- boolean: チェックボックス(またはトグル)
- enum(string内): セレクトボックス(ドロップダウン)
実践的な属性付きブロックのコード
以下の例では、タイトル、表示数、有効/無効の切り替え、サイズ選択の4つの属性を持つブロックを定義している。これらはすべて、JavaScriptを一行も書かずに管理画面のサイドバーに表示される。
register_block_type( 'my-plugin/advanced-php-block', array(
'title' => '設定付きPHPブロック',
'attributes' => array(
'blockTitle' => array( 'type' => 'string', 'default' => 'デフォルトタイトル' ),
'itemCount' => array( 'type' => 'integer', 'default' => 5 ),
'isEnabled' => array( 'type' => 'boolean', 'default' => true ),
'displaySize' => array(
'type' => 'string',
'enum' => array( 'small', 'medium', 'large' ),
'default' => 'medium',
),
),
'render_callback' => 'my_advanced_render_func',
'supports' => array( 'auto_register' => true ),
) );この仕組みの導入により、複雑なReactコンポーネント(TextControlやSelectControlなど)を組み合わせて `edit.js` を作成する手間が省ける。ただし、現時点ではリッチテキストエディタ(RichText)や高度なカラーピッカーなど、一部の複雑なコントロールはJS側での定義が必要な場合がある点には注意が必要だ。
実践例:カスタマイズ可能な価格表ブロックの構築

より実用的な例として、Web制作の現場で頻繁に求められる「価格表(料金テーブル)」ブロックをPHPのみで作成する手法を解説する。ここでは、WordPress標準のスタイル機能(色、間隔、タイポグラフィ)を統合する方法が重要となる。
get_block_wrapper_attributes によるネイティブ機能の統合
PHP-onlyブロックで最も強力な武器となるのが `get_block_wrapper_attributes()` 関数だ。この関数は、ユーザーがエディタのサイドバーで設定した背景色、文字色、パディング、マージンなどのスタイル情報をクラス名やインラインスタイルとして一括生成してくれる。これをメインの `div` タグに出力するだけで、自作ブロックがWordPressの標準デザインツールに完全対応する。
価格表ブロックのレンダリング設計
著者が提案する「Smart Pricing Widget」の例では、プラン名、価格、ボタンテキストなどの属性に加え、`supports` 配列で `color`, `spacing`, `typography`, `shadow`, `border` を有効にしている。これにより、エンジニアがCSSを細かく調整しなくても、運用者がエディタ上で自由に見た目をカスタマイズできるようになる。
function render_smart_pricing_block( $attributes ) {
// 属性の取得
$plan_name = esc_html( $attributes['planName'] );
$price = intval( $attributes['price'] );
// スタイル属性の生成
$wrapper_attributes = get_block_wrapper_attributes( array(
'class' => 'my-pricing-card',
) );
return sprintf(
'<div %s>
<h3>%s</h3>
<div class="price">¥%d</div>
<a href="#" class="btn">申し込む</a>
</div>',
$wrapper_attributes,
$plan_name,
$price
);
}プロフェッショナル
PHPのみで作成され、エディタの色設定が反映される価格表ブロックのイメージ
既存のショートコードをブロックへ変換する方法

PHP-onlyブロックの最も現実的かつ即効性のある活用シーンは、古いサイトで多用されている「ショートコード」のブロック化だ。ショートコードは入力が煩雑でプレビューも困難だが、PHP-onlyブロックでラップすることで、直感的な操作感へとアップグレードできる。
ショートコードをラップするメリット
ショートコードをそのまま使い続けるのではなく、ブロックとして再定義することで、ユーザーは「`[my_shortcode type=”info”]`」のような文字列を打ち込む必要がなくなる。代わりに、サイドバーのドロップダウンから「情報」「警告」「エラー」を選択するだけで済むようになる。内部的には既存のショートコード関数を呼び出すため、ロジックを書き直す必要もない。
do_shortcode を使ったレンダリング手法
実装方法は非常にシンプルだ。ブロックの `render_callback` 内で、受け取った属性を基にショートコード文字列を組み立て、WordPress標準の `do_shortcode()` 関数に渡すだけである。記事によれば、これにより管理画面上でもショートコードの実行結果がリアルタイムにプレビューされ、編集体験が劇的に向上するという。
function render_shortcode_wrapper_block( $attributes ) {
$type = esc_attr( $attributes['alertType'] );
$msg = esc_attr( $attributes['message'] );
// 既存のショートコードを動的に生成
$shortcode = sprintf( '[my_alert type="%s"]%s[/my_alert]', $type, $msg );
return sprintf(
'<div %s>%s</div>',
get_block_wrapper_attributes(),
do_shortcode( $shortcode )
);
}WordPress開発の未来とPHP-onlyブロックの立ち位置

PHP-onlyブロックは現在、非常に強力なツールとして進化を続けているが、すべてのJavaScript開発を置き換えるものではない。高度なインタラクションや、複雑な状態管理が必要なUI(例:ドラッグ&ドロップを伴う高度なレイアウトエディタなど)には、依然としてReactによる開発が適している。
しかし、中小規模のWebサイト制作や、社内向けのカスタム機能の実装においては、PHP-onlyブロックで十分なケースが大半だ。著者も指摘するように、この機能は「ブロックエコシステムを、高度なJavaScriptを操る層以外にも広げる」ための重要な架け橋となるだろう。今後は、より多くの管理画面コントロールがPHPから定義可能になり、JSを書く必要性はさらに低下していくと予想される。
我々Web制作に携わる者にとって、技術の選択肢が増えることは歓迎すべきことだ。プロジェクトの予算、納期、そして保守を担当するチームのスキルセットに合わせて、ReactベースのブロックとPHP-onlyブロックを適切に使い分ける「ハイブリッドな開発スタイル」が、これからのスタンダードになると考えられる。
この記事のポイント
- React/Node.js不要: 複雑なビルド環境なしでカスタムブロックが作成可能。
- auto_registerフラグ: PHPで定義した属性から管理画面のUIを自動生成できる。
- 保守性の向上: PHPコード一箇所で定義と出力を管理でき、コードの可読性が高い。
- ショートコードの進化: 既存のショートコードを簡単に、プレビュー可能なブロックへ変換できる。
- ネイティブ機能の統合: `get_block_wrapper_attributes` でWordPress標準のスタイル設定に即座に対応可能。
出典
- Kinsta Blog「How to build PHP-only Gutenberg blocks」(2026年3月19日)

・ 複数業界における17年間のデジタルビジネス開発経験
・ ウェブサイト開発のためのHTML、PHP、CSS、Java等の実用的知識
・ 15ヶ国語対応の多言語SaaSの開発経験
・ 17年間にも及ぶ、Eコマース長期運営経験
・ 幅広い業界でのSEO最適化の豊富な経験

WordPress 7.0開発最新状況——リアルタイム共同編集とAI連携の標準化が加速
WordPress 7.0のリリースサイクルが佳境を迎えている。2026年3月現在、Gutenberg 22.6のリリースによって主要な機能セットが確定し、3月19日にはリリース候補版(RC1)の公開が予定されている。
今回のメジャーアップデートでは、長年待望されていたリアルタイム共同編集(RTC)の基盤実装や、AIサービスとの連携を標準化する「AIコネクター」など、プラットフォームとしての在り方を大きく変える機能が導入される。現在はBeta 3が公開されており、広範囲なテストが呼びかけられている状況だ。
本記事では、WordPress 7.0で導入される主要機能の技術的背景と、開発者が準備すべきポイントについて、最新の動向を基に解説する。
WordPress 7.0の新機軸:リアルタイム共同編集(RTC)の実装

WordPress 7.0における最大の技術的トピックは、リアルタイム共同編集(RTC: Real-time Collaboration)の導入だ。複数のユーザーが同時に同じ投稿を編集できるこの機能は、これまで外部プラグインや特定のホスティング環境に依存していたが、ついにコア機能として組み込まれる。
HTTPポーリングによる高い互換性の確保
RTCの実装において、技術チームは当初検討されていたWebRTCではなく、HTTPポーリングによる同期プロバイダーを選択した。WebRTCはリアルタイム性に優れる一方で、サーバー構成やファイアウォールの設定によっては通信が不安定になる欠点がある。あらゆるホスティング環境での動作を保証するため、あえて汎用性の高いHTTPポーリングが採用された形だ。
データの整合性を保つ仕組みには、CRDT(Conflict-free Replicated Data Type / 衝突のない複製データ型)が採用されている。これは、複数の場所で同時に行われた変更を、矛盾なく統合するための数学的なアルゴリズムだ。更新データは「wp_sync_storage」という内部ポストタイプに保存され、定期的に圧縮・バッチ処理されることで、データベースへの負荷を最小限に抑える工夫がなされている。
拡張性を考慮した同期アーキテクチャ
この同期システムは、トランスポート層(通信手段)とストレージ層(保存先)を差し替え可能な設計になっている。デフォルトでは2名までの同時編集に制限されているが、ホスティング事業者は独自の同期プロバイダーを導入したり、wp-config.phpの設定値を変更したりすることで、より多人数での編集や高度なパフォーマンス最適化を図ることができる。
RTCをデフォルトで有効化するかどうかの最終判断は、RC2(リリース候補版2)前後で行われる予定だ。プラグイン開発者は、既存のメタボックスやカスタムフィールドがこの共同編集モードと競合しないか、事前の検証が求められる。
AI連携の標準化:AIコネクターとプロバイダーパッケージ

WordPress 7.0では、AIサービスとの通信を標準化するための「コネクター」機能が導入される。これは、特定のAIベンダーに依存せず、共通のインターフェースを通じてAI機能を利用できるようにするインフラストラクチャだ。
php-ai-clientによる共通インターフェースの提供
この機能の核となるのは「php-ai-client」パッケージだ。これは、主要なAIサービスとの通信を抽象化するPHPライブラリである。開発者はこの共通インターフェースに対してコードを書くことで、背後のAIプロバイダー(OpenAI、Google、Anthropicなど)が何であっても、同じように機能を実装できるようになる。
すでにプラグインディレクトリには、OpenAI、Google、Anthropicの各プロバイダーパッケージが公開されている。これにより、ユーザーは管理画面の「コネクター」設定から好みのAIサービスを選択し、APIキーを入力するだけで、サイト全体でAI機能を活用できる環境が整う。
プラットフォームとしてのAI対応
これまでAI機能は各プラグインが個別にAPI連携を実装していたが、コアが認証情報の管理やプロバイダーの選択を担うことで、開発効率とセキュリティが向上する。例えば、コンテンツ生成プラグインとSEO最適化プラグインが、同じAIコネクターの設定を共有するといった運用が可能になる。これは、WordPressが単なるCMSから「AI対応のオペレーティングシステム」へと進化する重要な一歩と言えるだろう。
編集体験の進化:視覚的な変更履歴とコンテンツ専用編集モード

ユーザーインターフェース(UI)の面でも、WordPress 7.0は大きな進化を遂げている。特にリビジョン管理とパターン編集の操作性が大幅に改善された。
カラーコードによる直感的なリビジョン管理
新しいリビジョンパネルでは、ドキュメント内の変更箇所が視覚的に強調表示されるようになった。追加されたブロックは緑、削除されたブロックは赤、設定が変更されたブロックは黄色で縁取りされる。テキスト内容についても、下線(追加)や打ち消し線(削除)を用いて、どこがどう変わったのかが一目で判別できる。
この機能はパフォーマンスにも配慮されており、まず変更されたブロックを素早く特定し、その後に詳細なテキスト比較を行う2段階のプロセスを採用している。テーマの色設定に合わせてカラーが自動調整されるため、どのようなデザインの編集画面でも視認性が損なわれない点も特徴だ。
構造を保護するコンテンツ専用編集(Content-Only Mode)
WordPress 7.0から、パターン編集のデフォルトが「コンテンツ専用編集モード」となる。このモードでは、レイアウトやスタイルの設定が隠され、ユーザーはテキストや画像などのコンテンツ入力に集中できる。これにより、誤ってデザインを崩してしまうリスクを低減できる。
構造的な編集が必要な場合は、パターンを「切り離す(Detach)」ことでフルアクセスが可能になる。管理者は、PHPフィルターやJavaScriptを使用して、非同期パターンのコンテンツ専用モードを無効化することも可能だ。制作会社がクライアントにサイトを引き渡す際、運用の安全性を高めるための強力なツールとなるだろう。
開発者向けツールとテーマ機能のアップデート

開発ワークフローを支えるツール群や、テーマ開発に役立つ新機能も多数追加されている。特にWP-CLIの強化と、ブロックの表現力向上に注目したい。
WP-CLIの新コマンドとPlaygroundの拡充
WP-CLIチームは、ブロックエンティティへの読み取り専用アクセスを提供する「wp block」コマンドや、権限管理を行う「ability」コマンドの開発を進めている。これらはWP-CLI v3.0の一部として、3月末の安定版リリースに向けて調整中だ。
また、ブラウザ上でWordPressを動作させる「WordPress Playground」のランタイムにおいて、phpMyAdminのサポートが追加された。wp-env.jsonの設定に1行加えるだけで、Docker環境と同等のデータベース管理ツールが利用可能になる。ローカル開発環境の構築がこれまで以上に迅速化される見込みだ。
アイコンブロックとナビゲーションオーバーレイ
テーマ制作において要望の多かった「アイコンブロック」がついに導入される。SVGアイコンをライブラリから選択して配置できる機能で、サーバーサイドの「SVG Icon Registration API」によって制御される。現在は標準のアイコンセットのみだが、将来的にはサードパーティ製のアイコンコレクションを登録できる拡張性も計画されている。
さらに、ナビゲーションブロックのモバイルメニュー(オーバーレイ)が完全にカスタマイズ可能になった。「ナビゲーションオーバーレイ」というテンプレートパーツとして独立したため、モバイル専用のメニューデザインを自由なレイアウトで作成できる。これは、モバイルファーストのデザインが求められる現代のWeb制作において、非常に価値の高いアップデートだ。
セキュリティアップデートと今後のロードマップ

新機能の開発が進む一方で、既存バージョンのメンテナンスも継続されている。2026年3月10日には、WordPress 6.9.2(および6.9.4までのマイナーアップデート)がリリースされた。これには10件の脆弱性修正が含まれており、中にはSSRF(サーバーサイドリクエストフォージェリ)やXSS(クロスサイトスクリプティング)といった重要度の高いものも含まれる。
開発チームは、すべてのユーザーに対して直ちにこれらのマイナーアップデートを適用するよう強く推奨している。セキュリティはサイト運営の根幹であり、新機能のテストを行う際も、まずは基盤となる環境の安全性を確保することが先決だ。
WordPress 7.0の正式リリースは4月に予定されている。RTCやAIコネクターといった野心的な機能が安定して動作するか、RC版での検証結果が待たれるところだ。開発者は、自身のプラグインやテーマがこれらの新機能とどのように相互作用するかを確認し、必要に応じてコードの修正を進めるべきだろう。
この記事のポイント
- リアルタイム共同編集(RTC): HTTPポーリングとCRDTを採用し、あらゆるホスティング環境で安全な同時編集を可能にする。
- AIコネクターの標準化: 共通インターフェースを通じて主要AIサービスと連携。ベンダーに依存しないAI機能の実装が可能になる。
- 視覚的なリビジョン管理: 変更箇所をカラーコードで強調表示。直感的な変更履歴の追跡が可能になり、編集ミスを防ぐ。
- テーマ・開発ツールの強化: アイコンブロックの導入やナビゲーションオーバーレイの刷新、WP-CLIの新コマンドにより開発効率が向上する。
- セキュリティの重要性: 6.9.x系の脆弱性修正が公開されており、7.0への移行準備と並行して既存サイトの即時アップデートが必要だ。
出典
- Developer WordPress News「What’s new for developers? (March 2026)」(2026年3月10日)
- WordPress.org「WordPress 7.0 Beta 3」(2026年3月5日)
- Make WordPress Core「Real-Time Collaboration in the Block Editor」(2026年3月10日)

・ 複数業界における17年間のデジタルビジネス開発経験
・ ウェブサイト開発のためのHTML、PHP、CSS、Java等の実用的知識
・ 15ヶ国語対応の多言語SaaSの開発経験
・ 17年間にも及ぶ、Eコマース長期運営経験
・ 幅広い業界でのSEO最適化の豊富な経験
