WordPress 6.8がまもなく2025年4月15日にリリースされます。今回は新機能の導入よりも既存の機能の改良が中心となっています。

WordPress 6.8では、ブロックエディター内でデータビューを管理するための簡単な機能や、クエリループブロックで投稿の固定表示を無視する機能などが追加され、エディターとユーザービリティが強化されています。また、スタイルブックの一新などのデザインとテーマの改善、投機的読み込み(Speculative loading)とパスワードハッシュ化のbcrypt導入によるパフォーマンスとセキュリティの改善も行われています。

これらの追加機能は、特にクラシックテーマを使用する際のエクスペリエンスを向上し、サイトパフォーマンスの改善に役立ちます。

この記事では、WordPress 6.8の注目の改良点と新機能をご紹介していきます。

エディターの改善

WordPress 6.8では、コンテンツの作成および管理管理体験が向上するいくつかのアップデートが行われています。新たなプレビューオプションとデータビューの改善により、投稿エディターとサイトエディター両方におけるワークフロー効率化が期待できます。

1. 表示ドロップダウンからテンプレートを表示

投稿エディターの上部ツールバーの表示ドロップダウンに「テンプレートを表示」メニューが追加されました。

表示ドロップダウンに「テンプレートを表示」メニューが追加
表示ドロップダウンに「テンプレートを表示」メニューが追加

これまでは、サイドバーからしかアクセスすることができませんでしたが(6.8でもアクセス可能)、ツールバーのドロップダウンに配置されたことで、コンテンツビューとテンプレートビューの切り替えがより簡単になりました。

「テンプレートを表示」の選択時
「テンプレートを表示」の選択時

2. データビューの改善

WordPress 6.5から導入されたデータビューは、ページ、テンプレート、テンプレートパーツ、パターンを整理して表示・管理できるサイトエディターの優れた機能。

WordPress 6.8では、さらに直感的で柔軟、効率的な編集体験のため、ユーザビリティの向上とカスタマイズ機能に重点を置いた改良が行われています。

ページビューは、プレビュー、スラッグ、親、ディスカッション、テンプレート、パスワードなど、より多くのプロパティでカスタマイズ可能です。また、パターンとテンプレートでも利用できます。

WordPress 6.8のページビュー
WordPress 6.8のページビュー

また、テーブルレイアウトの密度の制御が導入され、各行の間隔「広い」「普通」「狭い」の3つから選ぶことができます。表示方法を好みに合わせて調整できることで、管理体験が改善されます。

テーブルレイアウトの表示方法が制御可能に
テーブルレイアウトの表示方法が制御可能に

ブロックの改良

WordPress 6.8では新たにブロックが導入され、既存のブロックもいくつか改善されています。

1. クエリトータルブロック

クエリトータルブロックは、クエリの結果の総数や現在表示されている結果の範囲など、クエリ関連の情報を表示します。

WordPress 6.8に導入されるクエリトータルブロック
WordPress 6.8に導入されるクエリトータルブロック

クエリループ内に追加することで、ページ分割された結果の件数や範囲を表示することができます。

クエリトータルブロックの結果範囲
クエリトータルブロックの結果範囲

2. クエリループブロックの改善

WordPress 6.8以前は、クエリループブロックの先頭固定表示の投稿に対するオプションは以下に限定されました。

  • 含める:固定表示の投稿が投稿リストの先頭に追加される
  • 除外:固定表示の投稿を完全に除外する
  • 限定:固定表示の投稿のみを含める

固定表示の投稿を通常の投稿として扱う選択肢は、WP_Queryignore_sticky_posts => true)ではサポートされていましたが、サイドバーでは選択できませんでした。

先頭固定表示の投稿を「無視」するオプション
先頭固定表示の投稿を「無視」するオプション

今回のリリースで、固定表示の投稿のステータスを「無視」に変更できるようになります。この改善により、固定表示の投稿が自動的に結果の先頭に表示されるのを防ぎ、クエリ固有の並び替えロジックと配置を合わせることができます。

この更新は、WordPressのコアクエリ動作との柔軟性と一貫性を強化し、ブロックエディターのコンテンツ管理におけるクエリループブロックの機能性を高めます。

また、ブロックツールバーの「置換」をクリックすると表示される「パターンを変更」モダールがドロップダウンに代わり、文言は「デザインを変更」に変更されています。

クエリループブロックの「デザインを変更」ドロップダウン
クエリループブロックの「デザインを変更」ドロップダウン

3. 画像ブロックの画像をアイキャッチ画像に設定

画像ブロックのツールバーの「オプション」ドロップダウン(3つの点)を開いて、画像を投稿または固定ページのアイキャッチ画像に設定することができます。投稿のアイキャッチ画像をすでに設定している場合、ブロックツールバーからも変更可能です。

画像ブロックの画像をアイキャッチ画像に設定
画像ブロックの画像をアイキャッチ画像に設定

4. ナビゲーションブロックの改善

ナビゲーションブロックにもいくつか細かな改良が行われており、使いやすさと全体的な機能が増しています。

  • メニュー名がナビゲーションテキストと一緒に表示(PR #68466
  • カラーピッカーにクリアオプションの追加(PR #68454
  • ナビゲーションリンクとサブメニューブロック内で、操作を伴わないあらゆる形式のコンテンツが許可されるように(PR#67585

WordPress 6.8のナビゲーションブロックの改善点はこちらをご覧ください。

ナビゲーションリンクとサブメニューブロック内で操作を伴わない形式のコンテンツが利用可能
ナビゲーションリンクとサブメニューブロック内で操作を伴わない形式のコンテンツが利用可能

デザインとテーマの改善

WordPress 6.8では、サイトの編集体験が大幅に強化されています。グローバルスタイルのインターフェースが一新され、より簡単なアクセス&リアルタイムのカスタマイズが可能になりました。スタイルブックはクラシックテーマにも機能を拡張し、最新のブロックテーマと従来のクラシックテーマにおけるワークフローのギャップを埋めています。

1. サイトエディターのサイドバーからグローバルスタイルにアクセス

WordPress 6.8では、サイトエディターのメインメニューからグローバルスタイルインターフェースにアクセスできるようになっています。「スタイル」をクリックすると、タイポグラフィ、色、背景、影、レイアウトを含むグローバルスタイルパネルが表示されます。

サイトエディターのメインメニューに表示されるグローバルスタイルパネル
サイトエディターのメインメニューに表示されるグローバルスタイルパネル

目のアイコンをクリックすると、スタイル設定の変更がリアルタイムで表示される「スタイルブック」が右側に表示されます。グローバルスタイルパネルの特定のセクションをクリックすると、スタイルブックの対応するセクションに即座に移動します。

スタイルブックのナビゲーションがより簡単かつ高速に
スタイルブックのナビゲーションがより簡単かつ高速に

この変更により、サイトスタイルのカスタマイズがより簡単になり、作業が大幅に捗りそうです。

以下は、WordPress 6.7のインターフェースです。

WordPress 6.7のスタイルパネル
WordPress 6.7のスタイルパネル

また、この新機能はクラシックテーマにも導入されています。

2. クラシックテーマにスタイルブックの追加

スタイルブックは、WordPress 6.2からブロックテーマで利用可能ですが、WordPress 6.8では、add_theme_support( 'editor-styles' )を使用してエディタースタイルをサポートしているクラシックテーマ、またはtheme.jsonファイルを持つクラシックテーマでも利用できるようになっています。

この機能は、Gutenberg 19.9から導入されており、WordPress 6.8ではGutenbergを使用していなくても、「外観」>「デザイン」からクラシックテーマのグローバルスタイルとスタイルブックにアクセスできます。

以下は、Twenty Twenty-OneテーマをインストールしたWordPress 6.8のスタイルブックです。

WordPress 6.8のクラシックテーマのスタイルブック
WordPress 6.8のクラシックテーマのスタイルブック

パターン」メニューが左サイドバーに移動し、サイトエディターのスタイルブック用のスペースができています。

以下は、WordPress 6.8におけるTwenty Twenty-Oneテーマのスタイルブックの「タイポグラフィ」と「色」のプレビューです。

Twenty Twenty-Oneテーマのスタイルブックの色とタイポグラフィ
Twenty Twenty-Oneテーマのスタイルブックの色とタイポグラフィ

クラシックテーマへのスタイルブックの導入は、ブロックスタイル編集機能の統合強化への第一歩となっています。

パフォーマンスとセキュリティ

WordPress 6.8では、パフォーマンスとセキュリティも大幅に改善されています。新たなSpeculation Rules API により、WordPressサイトのウェブページは、ユーザーの操作を予測することでより高速に読み込まれます。同時に、パスワード保護をbcryptアルゴリズムに切り替えたことで、サイバー攻撃に対するシステムの安全性が高まっています。

1. 投機的読み込み

投機的読み込み(Speculative loading)は、ユーザーがアクセスする前にページやリソースを事前に取得または事前にレンダリングし、読み込み時間を短縮してユーザー体験を向上させる、サイトパフォーマンスの最適化テクニックです。

この機能は現在試験的に導入されているSpeculation Rules APIに基づいており、開発者はJSONで定義されたインターフェースを通して、予想されるユーザーインタラクションに基づいて、URLの事前取得や事前レンダリングのルールを指定できます。

Speculation Rules APIは現在、Chrome、Edge、Operaの新バージョンなど、主にChromium 121+ベースの限られたブラウザでサポートされています。

Speculation Rules APIをサポートしていないブラウザ(FirefoxとSafari)でも、投機的読み込みを使用しているサイトがペナリティを受けることはありません(APIによるパフォーマンス改善が見られないのみ)。

Speculation Rules APIのブラウザサポート(出典:caniuse)
Speculation Rules APIのブラウザサポート(出典:caniuse)

なお、事前取得事前レンダリングには、以下のような重要な違いがあります。

  • 事前取得プリフェッチ):<script type="speculationrules">Speculation-Rulesヘッダー内のprefetchルールにより、ブラウザは指定されたページのレスポンスボディをダウンロードしますが、レンダリングすることはありません。また、サブリソースの読み込みやJavaScriptの実行は含まれません。結果は指定されたキャッシュに保持され、ユーザーがページから離脱するとキャッシュは空になります。ユーザーが事前取得したページを訪問せずに離脱した場合はリソースの浪費になりますが、事前レンダリングよりはその消費量は少なくなります。
  • 事前レンダリングプリレンダリング):<script type="speculationrules">またはSpeculation-Rulesヘッダー内のprerenderルールにより、ブラウザはコンテンツを取得、レンダリング、不可視のタブに読み込みます。事前レンダリングを行うと、すべてのサブリソースが読み込まれ、すべてのJavaScriptコードが実行されます。その結果は、ユーザーがアクセスしたページを除いて、ユーザーがページを離れると空になる専用のキャッシュに保存されます。パフォーマンスの面で多くの利点がありますが、メモリとネットワーク帯域幅を使用して、多くのリソースを消費する可能性があります。

投機的読み込みのルールは、インラインの<script type="speculationrules">、またはSpeculation-Rules HTTPヘッダーによって参照される外部ファイルに配置することができます。以下は、scriptタグでの使用例です。

{
	"prefetch": [
		{
			"source": "list",
			"urls": ["firstpage.html", "secondpage.html"]
		}
	]
}

WordPress 6.8以前では、WordPressサイトに投機的読み込みを追加するには、WordPressパフォーマンスチームによるSpeculative Loadingプラグインを使用しました。このプラグインは、WordPressのフロントエンドのURLを自動的に事前読み込みまたはレンダリングすることで、Speculation Rules APIのパフォーマンス上の利点を提供します。

Speculative Loadingプラグインのデフォルト設定
Speculative Loadingプラグインのデフォルト設定

Speculative Loadingプラグインは、WordPressのフロントエンドのURLを自動的に事前読み込みまたはレンダリングすることで、パフォーマンスの利点を得ることができます。

WordPress 6.8では、このプラグインが2つの関数、フィルター、アクションとともにコアに組み込まれています

新たな関数wp_get_speculation_rules_configuration()は、現在の投機的読み込みのルール設定を返します(modeprefetch/prerendereagernessconservative/moderate/eager)。リソースの消費を最小限に抑え、望ましくない影響を防ぐため、デフォルト値はprefetchconservativeになります。開発者ノートでは、「Cloudflareが投機的読み込み機能で使用している設定と一致しており、URLへの後続のナビゲートなしで投機的読み込みが行われる可能性を最小限に抑える」と述べられています。

以下のコードは、プラグインまたは有効なテーマの関数ファイルに追加可能なwp_get_speculation_rules_configuration()の使用例です。

add_action( 'wp_footer', function() {
	$config = wp_get_speculation_rules_configuration();
	echo '<pre>';
	print_r( $config );
	echo '</pre>';
} );

WordPressコアの実装では、ユーザーのログイン時やパーマリンクの無効時を除き、すべてのサイトのフロントエンドで投機的読み込みが有効になっています。

WordPress 6.8で投機的読み込みでテストしたところ、次のような出力が得られました。

{
	"prefetch": [
		{
			"source": "document",
			"where": {
				"and": [
					{
						"href_matches": "/*"
					},
					{
						"not": {
							"href_matches": [
								"/wp-*.php",
								"/wp-admin/*",
								"/wp-content/uploads/*",
								"/wp-content/*",
								"/wp-content/plugins/*",
								"/wp-content/themes/twentytwentyfive/*",
								"/*\?(.+)"
							]
						}
					},
					{
						"not": {
							"selector_matches": "a[rel~="nofollow"]"
						}
					},
					{
						"not": {
							"selector_matches": ".no-prefetch, .no-prefetch a"
						}
					}
				]
			},
			"eagerness": "conservative"
		}
	]
}

wp_get_speculation_rules()は、設定に基づいて投機的読み込みルールのJSONオブジェクト全体を生成します。

例えば、以下のように使用できます。

add_action( 'wp_footer', function() {

	if ( function_exists( 'wp_get_speculation_rules' ) ) {

		$rules = wp_get_speculation_rules();

		if ( ! empty( $rules ) ) {
			echo '<h4>Speculation rules:</h4>';
			echo '<pre>';
			echo esc_html( json_encode( $rules, JSON_PRETTY_PRINT ) );
			echo '</pre>';
		} else {
			echo '<p>投機的読み込みルールが空か無効です</p>';
		}
	} else {
		echo '<p>wp_get_speculation_rules()が無効です</p>';
	}
});

wp_speculation_rules_configurationフィルターを使用して、eagernessをmoderateまたはeagerに変更したり、特定の動作を強制したりするなど、デフォルトの設定を変更することができます。

以下のようにdocumentの代わりにsource=listのURLリストを追加することで、関連する記事のみを事前レンダリングすることが可能です。

add_filter('wp_speculation_rules_configuration', function( $config ) {
	$config['mode'] = 'prerender';
	$config['eagerness'] = 'eager';
	$config['urls'] = [
		'source' => 'list',
		'urls' => [
			home_url('/page-1/'),
			home_url('/page-2/')
		]
	];
	return $config;
}

wp_load_speculation_rulesアクションでは、メインのコア投機的読み込みルールに加えて独自のルールも追加することができ、wp_speculation_rules_href_exclude_pathsフィルターでは、投機的読み込みから追加のパスを除外できます。

開発者ノートによれば、投機的読み込みを有効にしたウェブサイトは、Largest Contentful Paint(LCP)が平均1.9%まで改善されています。これが一度の追加による結果であることを考慮すると、この結果は注目に値します。

投機的読み込みに関する詳しい分析はこちらをご覧ください。WordPress6.8における投機的読み込みの詳細は、チケット#62503開発者ノートの使用例をご覧ください。Felix Arntz氏による解説(英語)も参考になります。

2. Bcryptによるパスワードハッシュ化

Word Press 6.8では、パスワード保護に使用するアルゴリズムが変更されます。現在採用されているphpassは、最新のセキュリティの観点からは最善とは言えません。WordPress 6.8からは、より安全なbcrypt暗号化アルゴリズムに切り替わります。

bcryptのメリットは、パスワードクラック(解読)により多くの時間とリソースをようするため、サイバー攻撃が効果的でなくなる点にあります。

さらにアプリケーションパスワード、ユーザーパスワードリセットキー、個人データリクエストキー、リカバリーモードキーは、phpassからより安全で高速なBLAKE2bハッシュアルゴリズムに切り替わります。

このアップデートにユーザー側の操作は不要です(以下英語原文の日本語訳)。

ユーザーが更新後初めてログインする際、またはパスワードを変更する際、パスワードは自動的にbcryptで再ハッシュされ、データベースに再保存されます。アプリケーションパスワードとセキュリティキーは自動的に再ハッシュされませんが、WordPress 6.8より前に生成され、有効期限が切れる前に使用された既存のハッシュは有効です

投稿パスワードは現時点ではphpassから変更されませんが、将来は更新される可能性があります。

WordPress 6.8におけるbcryptの導入に関して、また開発者向けの詳細な分析については、John Blackbourn氏による開発者ノートをご覧ください。

開発者向けの更新

上記に加えて、WordPress 6.8には、開発者が注目すべきアップデートも含まれます。以下、ブロックの構築と管理の簡素化、ユーザーインターフェースとサイトパフォーマンスの改善、開発ワークフローの効率化に役立つ新機能をご紹介します。

1. 複数ブロックタイプの登録

WordPress 6.8では、新関数wp_register_block_types_from_metadata_collection()とともに、より効率的なブロックタイプの登録方法が導入されます。これにより、複数のブロックタイプを同時に登録できるようになり、パフォーマンスとブロック開発作業が改善されます。

この関数は、WordPress 6.7で導入されたブロックタイプ登録のAPIに基づいており、複数のブロックタイプを一度の呼び出しで登録するプラグインに特に便利で、各ブロックを個別に登録するよりも効率的でシンプルです。

主な利点は、プラグインに登録するブロックタイプごとにregister_block_types()を繰り返し呼び出す必要がないことです。既存のプラグインにブロックタイプを新たに追加するには、そのブロックタイプ用のフォルダを作成するだけでOKで、プラグインのPHPコードベースにブロックタイプを登録する必要はありません。

この機能を利用するには、すべてのブロックタイプに対してマニフェストファイルを作成する必要があります。これはプロジェクト内のすべての block.jsonファイルのブロックメタデータを含むPHPファイルで、@wordpress/scriptsNPMパッケージのbuild-blocks-manifestコマンドを使用して生成します。

マニフェストファイルを生成したら、この関数を呼び出すだけで全てのブロックタイプを登録できます。

wp_register_block_types_from_metadata_collection(
	plugin_dir_path( __FILE__ ) . 'dist',
	plugin_dir_path( __FILE__ ) . 'dist/blocks-manifest.php'
);

wp_register_block_types_from_metadata_collection()の詳細は、開発者ノートbuild-block-manifestコマンドのドキュメントをご覧ください。

2. ユーザーインターフェースコンポーネントの改善

WordPress 6.8では、ブロックエディターのユーザーインターフェースコンポーネントにいくつかの変更が導入されています。非推奨と改善点があり、以下は特に注目したいものです。

  • Navigationコンポーネントの非推奨Navigationコンポーネント(およびすべてのサブコンポーネント)は非推奨となり、WordPress 7.1で削除され、Navigatorコンポーネントに置き換えられる予定です。
  • Navigatorコンポーネントが安定__experimentalUseNavigatorフックの__experimentalNavigatorToParentButtongoToParentメソッドが非推奨となり、__experimentalNavigatorBackButtongoBackに置き換えられます。
  • RadioGroupコンポーネントの非推奨RadioGroupコンポーネントが非推奨となり、代わりにRadioControlまたToggleGroupControlを使用します。

WordPress 6.8におけるユーザーインターフェースコンポーネントの詳細は、開発者ノートをご覧ください。

3. Interactivity APIの改善

Interactivity APIにもいくつか改善点があります。WordPress 6.8以前は、誰かがページとやり取りすると、関連するすべてのタスクが一度に発生していましたが、WordPress 6.8ではデフォルトでこれらのタスクを非同期で実行できる非同期ハンドラが導入されています。これは、ユーザーのインタラクションに対するサイトの応答性を測定する指標、INP(Interaction to Next Paint)の改善につながります。

この変更は現在WordPress 6.8のリリースに向けて調整中であり、まだ完全には実装されていません。したがって、警告を回避しながらこれらの改善(非同期メソッドの使用など)に対応するため、新たなベストプラクティスに従う必要があります。今回の新機能の導入は、より高速で信頼性に優れたInteractivity API実現に向けた中間ステップと言えます。

Interactivity APIのベストプラクティスの詳細はこちらをご覧ください。

4. パフォーマンス警告

useSelectフックは、ブロックエディターでのデータの取得と管理に役立ちますが、注意深く使用しなければ、サイト速度が低下する可能性があります。

WordPress 6.8からは、SCRIPT_DEBUGが有効になっている場合、useSelectが頻繁に呼び出されたり、非効率的であったりすると、開発者コンソールに新たな警告が表示されるようになりました。具体的には、useSelectが適切な最適化なしにコンポーネントのレンダー(更新)ごとにトリガーされた場合に表示されます。

この警告は、パフォーマンスのボトルネックとなる可能性を特定するのに役立ちます。詳細は開発者ノートをご覧ください。

WordPress 6.8のブロックインサーター
WordPress 6.8のブロックインサーター

まとめ

WordPress 6.8は、既存機能の改良とパフォーマンスの向上に重点が置かれています。主な改善点には、エディターの使いやすさの向上、グローバルスタイルインターフェース一新によるデザインのアップグレード、クラシックテーマのスタイルブックサポートなどが挙げられます。また、Speculation Rules APIによる投機的読み込みでパフォーマンスが改善し、bcryptパスワードハッシュでセキュリティが強化されます。

WordPress 6.8に導入されるそのほかの改善点や機能の包括的なリストは、WordPress公式ブログおよび開発者向けページをご覧ください。

Carlo Daniele Kinsta

ウェブデザインとフロントエンド開発をこよなく愛し、WordPress歴は10年以上。イタリアおよびヨーロッパの大学や教育機関とも共同研究を行う。WordPressに関する記事を何十件も執筆しており、イタリア国内外のウェブサイトや雑誌に掲載されている。詳しい仕事情報はXとLinkedInで公開中。