WordPress 7.2 trunk
情報源(8)
- https://github.com/WordPress/wordpress-develop/compare/7.1.0...1d2908edbe049c0b8a10104ec97aed3c0a2181b9 git
- Roadmap to 7.2 roadmap
- Progress Report: wp_kses() other
- Proposal: A Secrets API for WordPress 7.2 other
- Replacing Dashicons in the admin bar and menu other
- Moving to a server-aware approach for collaboration other
- Presence API: What’s new other
- https://github.com/WordPress/wordpress-develop/compare/7.1.0...ab2373ad7f5d7cb8883e2152a2779e29965ddd2f git
-
中
WP_Sitemaps_Stylesheetが非推奨になった(7.2.0) -
中
wp_kses_html_errorが非推奨になった(7.2.0) -
中
WP_Sitemaps_Renderer::get_sitemap_index_stylesheet_urlが非推奨になった(7.2.0) -
中
WP_Sitemaps_Renderer::get_sitemap_stylesheet_urlが非推奨になった(7.2.0) -
中
WP_Sitemaps_Stylesheet::get_sitemap_index_stylesheetが非推奨になった(7.2.0) -
中
WP_Sitemaps_Stylesheet::get_sitemap_stylesheetが非推奨になった(7.2.0) -
中
WP_Sitemaps_Stylesheet::get_stylesheet_cssが非推奨になった(7.2.0) -
中
WP_Sitemaps_Stylesheet::render_stylesheetが非推奨になった(7.2.0) -
中
filter
wp_sitemaps_stylesheet_contentが非推奨になった -
中
filter
wp_sitemaps_stylesheet_cssが非推奨になった -
中
filter
wp_sitemaps_stylesheet_index_contentが非推奨になった -
中
filter
wp_sitemaps_stylesheet_index_urlが非推奨になった -
中
filter
wp_sitemaps_stylesheet_urlが非推奨になった -
中
wp_kses() が HTML API ベースの新実装に置き換わった(旧実装はフィルターで復帰可能)
trunk では wp_kses() が HTML API(Tag Processor)ベースの実装に置き換わり、既定で有効になっている。出力は再シリアライズされるため、タグの小文字化・属性の二重引用符化・文字参照の正規化が起き、許可されていない script/style は中身ごと削除、途中で切れた末尾のタグ断片は破棄、複雑な SVG/MathML はそこで打ち切りになる。
wp_kses 系の出力を文字列比較しているテストや、セミコロンなしの & を含むテキストを通しているコードは結果が変わる可能性がある。wp_kses_force_legacy_parserフィルターで true を返すと旧実装に戻せるが、旧実装は 7.2.0 で消える可能性もあるため、ベータ期間中に新実装で検証すること。wp_kseswp_kses_postwp_kses_datawp_kses_force_legacy_parser -
低
_truncate_post_slugが非推奨になった(7.2.0) -
低
absint() に int 戻り値型が付き、範囲外の float は PHP_INT_MAX に丸められる
absint()のシグネチャがabsint( $maybeint ): intになり、整数範囲を超える有限の float はオーバーフローではなくPHP_INT_MAXを返すようになった。NAN/INF は従来どおり 0。
通常の利用では影響しないが、巨大な数値やオーバーフロー後の値に依存したテスト・ID 計算があれば確認すること。absint -
低
アプリケーションパスワード作成時にユーザーへ通知メールが送られるようになった
wp_create_application_passwordアクションにwp_application_password_created_notification()が登録され、アプリケーションパスワードが追加されるとそのユーザーにメールが送られる。
プログラムでアプリケーションパスワードを大量発行するプラグイン(連携・プロビジョニング系)は意図しないメールが飛ぶ。抑止はwp_send_application_password_created_emailフィルター、文面変更はwp_application_password_created_emailフィルターで行う。WP_Application_Passwords::create_new_application_passwordwp_create_application_passwordwp_send_application_password_created_emailwp_application_password_created_email -
低
theme.json の
var:preset|...参照のスラッグがケバブケースに変換されるようになったWP_Theme_JSON::convert_custom_properties()が、var:preset|color|...などのプリセット参照のスラッグを、生成される CSS カスタムプロパティ名に合わせてケバブケース化するようになった。
キャメルケースなどのスラッグを持つプリセットをvar:preset|で参照しているテーマ・ブロックスタイルは、出力されるvar(--wp--preset--...)の名前が変わる。これまで参照が解決されず壊れていたケースが直る方向の変更だが、旧名に合わせた手書き CSS がないか確認すること。/var:preset\|[a-z-]+\|[^"]*[A-Z_]/ -
低
画像編集で作られた添付ファイルに元画像 ID のメタ
_wp_attachment_edit_root_idが記録されるようになったMedia Editor Modal の系譜管理の一環で、画像の切り抜き・編集から新規作成された添付ファイルに、編集チェーンの起点となる添付 ID が
_wp_attachment_edit_root_idとして保存される。取得はwp_get_edit_root_attachment_id()。起点が完全削除されるとこのメタは一括削除される。
メディアの複製・移行・同期プラグインは、このメタの ID を移行先で付け替えないと誤った添付を指すことがある。wp_get_edit_root_attachment_id/_wp_attachment_edit_root_id/ -
低
jQuery Migrate が 3.4.1 から 3.6.0 に更新された
jquery-migrateハンドルのバンドル版が 3.6.0 に上がった(jQuery 本体は 3.7.1 のまま)。
非推奨 jQuery API を使う管理画面スクリプトは、SCRIPT_DEBUG 時のコンソール警告の内容・件数が変わる可能性がある。古い jQuery API に依存したコードがあれば警告を確認すること。jquery-migrate -
中
管理画面のスクリプト/スタイル連結(load-scripts.php)の廃止が予定されている
7.2 ではスクリプト/スタイルの連結をやめ、プリフェッチに置き換える方針。trunk には
wp_prefetch_admin_assets()と暫定フィルターwp_should_concatenate_admin_scriptsが入っているが、連結自体はまだ既定で有効で、このフィルターは 7.2-beta1 前に削除予定と明記されている。
CONCATENATE_SCRIPTS定数や$concatenate_scriptsグローバルに依存するコード、連結を前提にしたハンドル順序・依存関係の不備があるプラグインは、連結廃止後に読み込み順の違いが表面化する可能性がある。暫定フィルターには依存しないこと。CONCATENATE_SCRIPTSwp_should_concatenate_admin_scriptsscript_concat_settings/\$concatenate_scripts|load-(scripts|styles)\.php/ -
中
投稿エディタのインスペクター(アイキャッチ・抜粋・ステータス等)が DataForm に置き換わる予定
投稿サイドバーのドキュメント設定(アイキャッチ画像、抜粋、ステータス、日付、作成者、テンプレート等)を DataForm ベースに置き換える作業が進行中で、テスト募集が出ている。
これらのパネルに SlotFill やフィルターで UI を差し込んでいるプラグイン、DOM・CSS クラスに依存した E2E テストは、置き換え後に表示位置や構造が変わる可能性がある。具体的な影響 API は Dev Note 待ち。 -
中
管理バー・管理メニューのアイコンを Dashicons から SVG(wp_get_icon)に置き換える予定
管理バーとサイドメニューのコアアイコンを、アイコンフォントの Dashicons から
wp_get_icon()による SVG に置き換えるパッチがレビュー中(trunk の menu-header.php はまだ Dashicons のまま)。
コアのメニュー項目・管理バー項目のアイコンを CSS の:before疑似要素やフォントグリフ前提で上書き・装飾しているプラグインや管理画面テーマは、表示が崩れる可能性がある。プラグイン自身が登録したメニューの Dashicons 指定まで廃止されるかは未確定。replacing-dashicons-in-the-admin-bar-and-menu roadmap-to-7-2 #
-
低
アプリケーションパスワードと default_role の追加ハードニングが予定されている
通知メール(trunk 入り済み)以外に、非 HTTPS 環境での判定の見直し、
default_roleに危険な値を設定できないようにする制限、Cookie の SameSite 属性対応が予定されている。
default_roleを管理者相当の権限グループに設定するプラグインや、認証 Cookie を独自に発行・検証するプラグインは影響を受ける可能性がある。default_role -
低
権限の高い管理操作を再認証で保護する「sudo モード」の導入が検討されている
ログイン済みでも高権限の管理操作の前に再認証を求める「sudo モード」の初期作業が始まった。提案と対象操作は未公開。
管理画面の操作を自動化しているプラグインや、プラグイン/ユーザー管理画面をリモート操作するツールは、再認証プロンプトで処理が止まる可能性がある。提案公開後に再評価すること。 -
低
ウィジェット画面の「アクセシビリティモード」の削除が予定されている
クラシックウィジェット画面の管理モードを減らすため、アクセシビリティモード(
widgets-access)の削除がロードマップに挙がっている。trunk ではまだ残っている。
このモードの URL パラメータや画面構造を前提にしたウィジェット系プラグインは、削除後の挙動を確認すること。/widgets-access/ -
低
React 19 への移行は 7.2 でも完了しない見込み
Gutenberg の React 19 対応(型、依存、レンダリング修正)は大半が入ったが、ロードマップ上 7.2 での完全移行は「見込み薄」とされている。将来リリースでの移行に備えた周知。
react-domの旧 API(render 等)や React 18 前提の挙動に依存するブロック・管理画面 UI は、引き続き移行準備を進めること。reactreact-dom -
低
認証情報を暗号化保存する Secrets API が 7.2 向けに提案されている
プラグインが API キー等をオプションに平文保存している現状を改め、暗号化必須の Secrets API(
wp_set_secret()/wp_get_secret()/wp_delete_secret()/wp_import_option_as_secret()、値オブジェクトWP_Secret、manage_secrets権限、secrets.phpドロップイン)を 7.2 に入れる提案。UI は 7.3。trunk には未コミットで、Beta 1 までにコミットか 7.3 送りかが決まる。
既存コードを壊すものではないが、同名の関数・クラスを独自定義しているプラグインは衝突する。API キーを扱うプラグインは移行(import)計画を検討すること。/function\s+wp_(set|get|delete)_secret\s*\(|class\s+WP_Secret\b/ -
低
リアルタイム共同編集は 7.2 のロードマップに含まれていない
7.0・7.1 で見送られたリアルタイム共同編集は、7.2 では意図的にロードマップから外された。ブラウザ間で直接同期する方式から、サーバーが編集者の帰属・権限確認・マージを担う「サーバー主導」方式への転換が検討されており、候補の同期エンジンは探索段階でコア入りの準備はできていない。
関連する Presence API も機能プラグイン段階。7.2 で共同編集が入る前提の対応は不要。roadmap-to-7-2 moving-to-a-server-aware-approach-for-collaboration presence-api-whats-new #
WordPress 7.1 final
情報源(42)
- https://github.com/WordPress/wordpress-develop/compare/7.0.0...daaca56d3d6a9a42a0c87f6eda766c33a77c1d05 git
- WordPress 7.1.1 RC1 is now available release
- Replacing Dashicons in the admin bar and menu other
- WordPress 7.1 Release Day Process release
- WordPress 7.1 Release Candidate 4 release
- Accessibility Improvements in WordPress 7.1 dev-note
- WordPress 7.1 Release Candidate 3 release
- WordPress 7.1 Release Candidate Phase release
- WordPress 7.1 Field Guide field-guide
- The notify_post_author filter now has the final say on post author notifications dev-note
- Filtering registered abilities with wp_get_abilities() in WordPress 7.1 dev-note
- Responsive block styles and configurable viewports in WordPress 7.1 dev-note
- Pseudo and custom style states in WordPress 7.1 dev-note
- A unified public exposure flag for Abilities in WordPress 7.1 dev-note
- Miscellaneous Editor Changes in WordPress 7.1 dev-note
- Introducing name and informational tool tips in WordPress 7.1 dev-note
- Post list tables row headers changed dev-note
- Iframed Editor Changes in WordPress 7.1 dev-note
- JSON Schema preparation for client compatibility in WordPress 7.1 dev-note
- Abilities API improvements in WordPress 7.1 dev-note
- Design System Theming in WordPress 7.1 dev-note
- Filtering Site Editor Screens in WordPress 7.1 dev-note
- jQuery UI updated to 1.14.2 in WordPress 7.1 dev-note
- New execution lifecycle filters for the Abilities API in WordPress 7.1 dev-note
- New Block Support in WordPress 7.1: Background Gradient (background.gradient) dev-note
- New Block Support in WordPress 7.1: Minimum Width dev-note
- Registering and rendering SVG icons in WordPress 7.1 dev-note
- React 19: punted beyond WordPress 7.1, experiment in Gutenberg dev-note
- Editor components updates in WordPress 7.1 dev-note
- Editable blocks inside the Custom HTML block dev-note
- Media Library infinite scrolling is now enabled by default, with a per-user opt-out dev-note
- Text Shadow Support in Global Styles dev-note
- Client-Side Media Processing in WordPress 7.1 dev-note
- Consistent navigation in WordPress 7.1 with persistent toolbar dev-note
- Merge Proposal: Design System Theming other
- The Classic block stays in the inserter for WordPress 7.1 dev-note
- Merge Proposal: Expanding WordPress Core Abilities other
- Hiding the Classic block from the inserter in WordPress 7.1 dev-note
- Merge Proposal: Guidelines built on Knowledge other
- Roadmap to 7.1 roadmap
- Call for Testing: Unicode email addresses. other
- Announcing a collaborative editing outreach effort for 7.1 other
-
高
public メソッド
WP_Importer::__constructが削除された -
高
クライアントサイドメディア処理時はサーバー側の画像エディタ系フックが発火しない
7.1 ではブロックエディタからのアップロード画像のサブサイズ生成・変換・EXIF 回転がブラウザ(wasm-vips)で行われる(Chromium 137+ で既定有効)。サーバーの画像エディタを使わないため image_make_intermediate_size, wp_image_editors, image_memory_limit は発火しない。
これらのフックでサブサイズを加工・最適化・記録しているプラグインは Chromium からのアップロードで処理が行われなくなる。wp_generate_attachment_metadata など別フックへ移すか、wp_client_side_media_processing_enabled フィルターで機能を無効化すること。
サポート MIME(jpeg/png/gif/webp/avif)は固定で、HEIC は JPEG に変換され、不透明なアニメーション GIF には動画のコンパニオンファイルが作られる点も確認すること。image_make_intermediate_sizewp_image_editorsimage_memory_limitwp_client_side_media_processing_enabledclient-side-media-processing-in-wordpress-7-1 wordpress-7-1-field-guide #
-
高
フックのコールバック ID 生成が spl_object_id ベースになり、WP_Hook::$callbacks のキーが整数になり得る
_wp_filter_build_unique_id() はクロージャ・オブジェクトのコールバックに spl_object_hash ではなく spl_object_id を使うようになった。クロージャの ID は数値文字列になるため、PHP 配列のキーとしては整数に変換される。
$wp_filter[...]->callbacks のキーを文字列前提で strpos() 等に渡すコード(strict_types 下)は Fatal になる報告があり、7.1.1 で修正対象(#65919)。フックの内部構造を走査するデバッグ系・フック管理系プラグインは確認すること。_wp_filter_build_unique_idWP_Hook/\$wp_filter\s*\[|->callbacks\b/ -
高
@wordpress/components の __experimentalApplyValueToSides が削除された
6.8 から非推奨だったユーティリティ __experimentalApplyValueToSides が削除された。呼び出すと TypeError になる。BoxControl 自体は影響なし。
値の各辺への展開は自前で実装すること。/__experimentalApplyValueToSides\b/ -
高
7.1.0 のマルチサイトでユーザー削除時にコンテンツ移譲ドロップダウンが表示されない回帰
7.1.0 のマルチサイトではユーザー削除時に投稿の移譲先ドロップダウンが表示されず、コンテンツが黙って削除される回帰が報告されている(#66012)。7.1.1 で修正対象。
マルチサイトを運用・ユーザー削除フローを拡張しているプラグインは、7.1.1 までユーザー削除を避けるか動作を確認すること。 -
高
投稿エディタが常に iframe 化された(ブロック API バージョン・メタボックスの有無に関係なく)
7.0 までは挿入されたブロックの API バージョンが 3 未満だと投稿エディタは非 iframe に戻っていたが、7.1 ではテーマ種別・ブロック API バージョン・レガシーメタボックスの有無に関係なく常に iframe で動作する。
エディタスクリプトから グローバルの document / window でキャンバス内の要素を探したり、イベントを登録したりするコードは別ドキュメントを見ることになり動かなくなる。
要素の ownerDocument / defaultView 経由でキャンバスのドキュメントを取得し、リスナーは useRefEffect で付け外しすること。エディタ向け CSS もキャンバス内に読み込まれるか(editorStyle / block.json の style)を確認すること。/\b(?:document|window)\.(?:querySelector(?:All)?|getElementById|getElementsBy\w+|addEventListener)\s*\(/iframed-editor-changes-in-wordpress-7-1 wordpress-7-1-field-guide #
-
中
WP_HTML_Open_Elements::has_element_in_select_scopeが非推奨になった(7.1.0) -
中
@wordpress/nux が何もしない互換パッケージになった
5.4 から非推奨だった @wordpress/nux(wp-nux)は 7.1 で no-op になった。import やスクリプト依存は壊れないが、ヒントやガイドは一切表示されない。
オンボーディングに NUX を使っている場合は @wordpress/components の Guide コンポーネントへ移行すること。@wordpress/nux→@wordpress/components (Guide)wp-nux -
中
REST からの Ability 実行時に入力が input_schema の型へ変換されるようになった
GET / DELETE の run リクエストでは、クエリ文字列の値が input_schema の型(integer, boolean, array など)に変換されてから permission_callback と execute_callback に渡るようになった。
これまで文字列 "10" や "true" を前提に自前でキャスト・比較していた Ability は、受け取る型が変わるため厳密比較の分岐を見直すこと。検証で拒否される入力の扱いは変わらない。wp_register_ability -
中
クライアントサイド処理では wp_generate_attachment_metadata が create と update の 2 回発火する
クライアントサイド処理のアップロードでは、初回アップロード時(サブサイズ作成前)に context 'create' で、全サブサイズの sideload 後に POST /wp/v2/media/{id}/finalize で context 'update' で wp_generate_attachment_metadata が発火する。
'create' 時点ではサブサイズのメタデータがまだ無い。透かし・CDN 同期・独自メタ処理などのフックは 2 回の呼び出しで冪等に動くようにすること。finalize の失敗はログのみでアップロード自体は成功扱いになる。wp_generate_attachment_metadata -
中
notify_post_author フィルターの戻り値が最終決定になり、未承認コメントの既定値が false になった
wp_new_comment_notify_postauthor() はフィルター適用前に承認状態を判定するようになった。未承認(保留・スパム・ゴミ箱)コメントでは既定値が false、承認済みは comments_notify オプションに従い、既定値は常に厳密な bool になる。コメント ID が無効なら フィルターを通さず false を返す。
フィルターで true を返すと未承認コメントでも通知が送られるようになったため、__return_true などで通知を強制しているコードはスパムや保留コメントでもメールが飛ぶ。承認状態を確認してから true を返すこと。$maybe_notify を '1' と厳密比較しているコードも修正が必要。notify_post_authorwp_new_comment_notify_postauthorthe-notify_post_author-filter-now-has-the-final-say-on-post-author-notifications #
-
中
投稿一覧テーブルの行見出し th がチェックボックス列からタイトル列へ移った
投稿一覧テーブルで scope="row" の th がチェックボックス列(check-column)からタイトル列に移り、check-column は td になった。タイトル列の th には投稿タイトルの aria-label が付く。レスポンシブ表示の折り畳みセルは flex レイアウトになった。
th.check-column や th input[type="checkbox"]、td.column-title / td.column-primary / td .row-actions などを狙う CSS・JS は効かなくなる。7.1 未満とも互換を保つなら td と th の両方のセレクタを書くこと。th.check-columntd.column-titletd.column-primarytd .row-actions/th\.check-column|th\s+input\[type=|td\.(?:title|column-title|column-primary|page-title)\b|td\s+\.(?:row-title|row-actions|post-state)\b/ -
中
getEntityRecords() が非ページネーションのエンティティで全件を返すようになった
これまで getEntityRecords() は全エンティティに対してクライアント側で per_page=10 相当の切り詰めを行っていた(バグ)。7.1 では supportsPagination: true を宣言したエンティティだけが切り詰められ、それ以外は全件を返す。
10 件しか返らない前提で描画・ループしているコードは件数増加に注意。独自エンティティが非ページネーションの REST ルートに基づく場合は supportsPagination: false を宣言すること。per_page: -1 の回避策は不要だが害はない。/\bgetEntityRecords\s*\(|supportsPagination/ -
中
jQuery UI が 1.14.2 に更新され、一部の内部 API と IE サポートが削除された
同梱の jQuery UI が 1.13.3 から 1.14.2 になり、Internet Explorer / 旧 Edge のサポートが削除された。$.fn._form, $.ui.ie, $.ui.safeActiveElement, $.ui.safeBlur が削除されている(jQuery.uiBackCompat は true に設定)。
これらを使っているコードは書き換えること。jQuery UI のウィジェットの挙動やスタイルに依存する管理画面は動作確認すること。/\$\.ui\.(?:ie|safeActiveElement|safeBlur)\b|\.fn\._form\b|\)\._form\s*\(/ -
中
7.1.0 でブロックスタイルバリエーションの spacing.blockGap などレイアウトスタイルが出力されない回帰
7.1.0 ではブロックスタイルバリエーションに定義した spacing.blockGap が gap を出力しなくなる回帰があり(#66044 / Gutenberg #82335)、7.1.1 で修正対象。
スタイルバリエーションでレイアウト・gap を指定しているテーマは 7.1.0 での表示を確認し、7.1.1 へ更新すること。/blockGap/ -
中
ブロックエディタ画面に Document-Isolation-Policy(cross-origin isolation)が付与される
クライアントサイドメディア処理が有効な場合、Chromium 137+ ではブロックエディタ・サイトエディタ・ウィジェット画面に Document-Isolation-Policy: isolate-and-credentialless が送られる。
外部オリジンのスクリプトには crossorigin="anonymous" が自動付与され、ブラウザからの cross-origin fetch は credentialless 扱いとなり CORS で失敗しやすくなる。外部画像の取り込みはサーバー側(メディアエンドポイントの url パラメータ)で行うこと。
独自の Content-Security-Policy を送るプラグインは worker-src に blob: を含めないと WASM ワーカーが起動せずサーバー処理へフォールバックする。エディタ内で外部リソースや埋め込みを読み込むプラグインは要確認。無効化は wp_client_side_media_processing_enabled フィルターで false を返す。wp_client_side_media_processing_enabled/Content-Security-Policy|worker-src/ -
中
@wordpress/components の View の css プロップが無効化され、Emotion から SCSS への移行が始まった
View は型互換のため css プロップを受け付けるが no-op になった。Divider, Surface, Truncate, View, Flex, Spacer は Emotion を経由しなくなったため、cx() に複数の css() 断片を渡している場合はオーバーライド順が変わり得る。
View の css プロップは style または className に置き換え、順序依存の断片は 1 つの css() 呼び出しにまとめてから cx() に渡すこと。対象コンポーネントは今後増える予定。/\bcx\s*\(|\bcss=\{/ -
低
_wp_has_noncharacters_fallbackが非推奨になった(7.1.0) -
低
delete_users_add_jsが非推奨になった(7.1.0) -
低
@wordpress/reusable-blocks の公開 API が非推奨警告を出すようになった
@wordpress/reusable-blocks(wp-reusable-blocks)のコンポーネントとデータ API が呼び出し時に非推奨警告を出す。将来は @wordpress/nux と同様に no-op 化される予定。
同期パターン(旧再利用ブロック)の取得・更新は core-data の標準エンティティメソッドへ移行すること。@wordpress/reusable-blockswp-reusable-blocks -
低
クラス
WP_Block_Clonerが削除された -
低
関数
block_core_home_link_build_css_font_sizesが削除された -
低
関数
block_core_page_list_build_css_font_sizesが削除された -
低
Ability のメタデータに public フラグが追加され、core/get-user-info が REST に公開された
解決後の Ability メタデータには常に bool の public が含まれ(既定 false)、show_in_rest は show_in_rest ?? public ?? false で決まる。コア Ability(core/get-site-info, core/get-user-info, core/get-environment-info)は public を使うようになり、core/get-user-info が新たに REST から発見可能になった。
また wp_before_execute_ability / wp_after_execute_ability は最後の引数に WP_Ability を追加で受け取る(既存コールバックはそのまま動く)。メタデータのキー有無で判定しているコードや、REST に出る Ability 一覧を前提にしたクライアントは確認すること。wp_register_ability_argswp_before_execute_abilitywp_after_execute_abilitya-unified-public-exposure-flag-for-abilities-in-wordpress-7-1 abilities-api-improvements-in-wordpress-7-1 #
-
低
メディアライブラリのグリッド表示が既定で無限スクロールになった
media_library_infinite_scrolling フィルターの既定値が false から true に変わり、メディアライブラリのグリッド表示とメディアモーダルが既定で無限スクロールになった。ユーザーはプロフィールで個別に無効化でき、ユーザーメタ infinite_scrolling に文字列 'true' / 'false' で保存される。
優先順位はフィルター > ユーザー設定 > 既定値。「さらに読み込む」ボタン前提の UI 拡張をしているプラグインは確認し、旧挙動を全員に強制するならフィルターで false を返すこと。無限スクロールは既知のアクセシビリティ上の後退とされている。media_library_infinite_scrollingmedia-library-infinite-scrolling-is-now-enabled-by-default-with-a-per-user-opt-out accessibility-improvements-in-wordpress-7-1 #
-
低
wp_get_abilities() の結果が引数なしでもグローバルフィルターで変わり得るようになった
wp_get_abilities() は category / namespace / meta などで絞り込める $args を受け取るようになり、新フィルター wp_get_abilities_item_include と wp_get_abilities_result が引数なしの呼び出しでも適用される。
引数なしの呼び出しが「登録済み全件」を意味しなくなったため、未加工の登録内容が必要なら WP_Abilities_Registry::get_all_registered() を使うこと。REST の一覧も wp_get_abilities() 経由になり namespace でも絞り込める。wp_get_abilities→WP_Abilities_Registry::get_all_registeredfiltering-registered-abilities-with-wp_get_abilities-in-wordpress-7-1 #
-
低
ツールバー(管理バー)が投稿エディタ・サイトエディタで常時表示されるようになった
7.1 では集中モード以外のとき、投稿エディタとサイトエディタでもツールバーが表示される。左上の W ロゴ/サイトアイコンは戻るボタン(シェブロン)に置き換わった。サイトエディタでツールバーが出るのは新しい挙動。
admin_bar_menu でノードを追加しているプラグインは、サイトエディタやクライアントサイド遷移で正しく動くか確認すること。エディタで出したくなければ get_current_screen() の is_block_editor() や id で判定して追加をスキップする。admin_bar_menuconsistent-navigation-in-wordpress-7-1-with-persistent-toolbar #
-
低
@wordpress/blocks の __experimentalCloneSanitizedBlock / __experimentalSanitizeBlockAttributes が非推奨になった
安定版の cloneSanitizedBlock / sanitizeBlockAttributes が追加され、__experimental 版は動作するもののコンソールに非推奨警告を出す。
wp.blocks または @wordpress/blocks から呼んでいる箇所を安定版に置き換えること。/__experimental(?:CloneSanitizedBlock|SanitizeBlockAttributes)\b/ -
低
@wordpress/components のフォームコントロールが無条件で 40px 高になった
TextControl, SelectControl, InputControl, RangeControl, ComboboxControl, FontSizePicker など多数のフォームコントロールは 40px 高が既定となり、__next40pxDefaultSize は実行時に無視される。__next40pxDefaultSize={ false } で 36px に戻すこともできない。
BorderBoxControl, BorderControl, FontSizePicker, ToggleGroupControl の size プロップも無効。高さ 36px 前提のレイアウトや CSS を持つ設定画面・インスペクターは表示崩れを確認し、不要になったプロップを削除すること。Button は対象外。/__next40pxDefaultSize|size=['"]__unstable-large['"]/ -
低
Abilities REST API のレスポンス内スキーマが Draft 4 形式に整形されるようになった
/wp-json/wp-abilities/v1/abilities のレスポンスに含まれる input / output スキーマは wp_prepare_json_schema_for_client() で整形され、プロパティ単位の required は親の required 配列に移り、sanitize_callback / validate_callback / arg_options は除去され、空オブジェクトの default は {} になる。
WP_Ability::get_input_schema() の戻り値は従来どおりなので、REST 経由のスキーマと PHP 側のスキーマを比較・依存しているクライアントは差異に注意すること。WP_Ability::get_input_schemaWP_Ability::get_output_schema/wp-abilities/v1/json-schema-preparation-for-client-compatibility-in-wordpress-7-1 #
-
低
ブロックレベルのプリセットクラスの詳細度がルートレベルと同じに下がった
theme.json の settings.blocks.<block> や wp_theme_json_data_* フィルターで定義したブロックレベルプリセットのユーティリティクラス(.has-*-color, -background-color, -font-size など)は、ブロックセレクタが :where() で包まれ詳細度 0-1-0 になった。
トップレベルとブロックレベルのプリセットの間に割り込む !important 付きの独自 CSS を書いているテーマ・プラグインは優先順位が変わる可能性がある。 -
低
貼り付け時の Markdown パーサーが showdown から marked に変わった
@wordpress/blocks の pasteHandler() 内部で使う Markdown 変換が showdown から marked(CommonMark / GFM 準拠)に置き換わった。
API の変更はないが、エッジケースの変換結果が変わり得る。pasteHandler() を直接呼んでいるコードは代表的な Markdown 入力で生成ブロックを再確認すること。/\bpasteHandler\s*\(/ -
低
管理バーの Dashicons を SVG アイコンに置き換える変更は 7.1 に入らなかった
ロードマップでは管理バーの Dashicons を wordpress/icons の SVG に置き換え、「Howdy」表記を削除する予定だったが、7.1.0 の管理バーは従来どおり(Howdy も残っている)。置き換えは 7.1 リリース後も提案段階で、wp_get_icon() を使ったパッチがレビュー中。
#wpadminbar の .ab-icon:before など Dashicons 前提の CSS は 7.1 では壊れないが、次期リリースで影響を受ける可能性がある。#wpadminbar .ab-iconroadmap-to-7-1 replacing-dashicons-in-the-admin-bar-and-menu #
-
低
コア Ability の拡張(core/read-settings, core/read-content, core/read-users)は 7.1 に入らなかった
読み取り専用のコア Ability 3 種と show_in_abilities フラグを追加するマージ提案は、7.1.0 のコードに含まれていない。7.1 で入ったのは既存 3 種(core/get-site-info など)のスキーマ整備と fields 入力のみ。
これらの Ability が存在する前提の AI・MCP 連携は、wp_get_ability() の戻り値を確認して分岐すること。merge-proposal-expanding-wordpress-core-abilities roadmap-to-7-1 #
-
低
Design System Theming の管理画面全体への適用は見送られ、基盤のみ出荷された
Design System Theming のマージ提案のうち、7.1 で入ったのは wp-theme スタイルシート(デザイントークン)と wp-theme スクリプト(ThemeProvider)などの基盤と、サイトエディタへの管理画面配色の反映だけ。管理画面全体への適用は今後のリリースで検討される。
管理画面の見た目が 7.1 で全面的に変わる前提の対応は不要。wordpress-7-1-field-guide merge-proposal-design-system-theming design-system-theming-in-wordpress-7-1 #
-
低
Guidelines と wp_knowledge 投稿タイプのコア統合は 7.1 に入らなかった
新しい投稿タイプ wp_knowledge と、その上に構築する Guidelines 機能のマージ提案は 7.1 に含まれず、Gutenberg プラグインで継続している。7.1.0 のコードに wp_knowledge は存在しない。
Guidelines をコア機能として前提にしたプラグインは、引き続き Gutenberg プラグインの有無で分岐すること。wordpress-7-1-field-guide merge-proposal-guidelines-built-on-knowledge roadmap-to-7-1 #
-
低
ダッシュボードの「On This Day」ウィジェットは 7.1 に入らなかった
ロードマップにあった過去の投稿を振り返るダッシュボードウィジェット「On This Day」は 7.1 に含まれなかった。議論は Trac #65801 で継続。
ダッシュボードウィジェットの並びや ID を前提にしたコードへの影響はない。 -
低
React 19 へのアップグレードは 7.1 でも見送られた(React 18.3 のまま)
7.1 は React 18.3 のまま出荷された。Gutenberg 23.3 で一度 React 19 に上げたが、react/jsx-runtime を自前でバンドルしたプラグインなどとの非互換で差し戻され、Gutenberg 23.4 以降の実験フラグとして継続している。
将来に備え、react/jsx-runtime をバンドルせず WordPress 提供の react-jsx-runtime を外部化すること、文字列 ref や関数コンポーネントの defaultProps など React 19 で削除された API を使わないことを確認しておくとよい。react-jsx-runtimereact-19-punted-beyond-wordpress-7-1-experiment-in-gutenberg roadmap-to-7-1 wordpress-7-1-field-guide #
-
低
リアルタイム共同編集は 7.1 でも出荷されなかった
7.0 で削除されたリアルタイム共同編集は、7.1 サイクルでアウトリーチによる広範なテストが行われたが、最終リリースでは有効化されなかった。引き続き Gutenberg プラグイン(設定 > 投稿設定)で試せる。
投稿ロック(_edit_lock)前提の処理は 7.1 でも従来どおり。共同編集を前提とした対応はまだ不要。wordpress-7-1-field-guide announcing-a-collaborative-editing-outreach-effort-for-7-1 roadmap-to-7-1 #
-
低
オブジェクト/ページキャッシュ検出時に投機的読み込みを moderate にする変更は入らなかった
ロードマップでは、オブジェクトキャッシュとページキャッシュを検出したサイトで投機的読み込みの既定 eagerness を conservative から moderate に上げる予定だったが、7.1.0 の既定は conservative のまま。
代わりに WP_SPECULATIVE_LOADING_DEFAULT_MODE / WP_SPECULATIVE_LOADING_DEFAULT_EAGERNESS 定数(または同名の環境変数)でホスティング側が既定値を変えられるようになった。WP_SPECULATIVE_LOADING_DEFAULT_EAGERNESSWP_SPECULATIVE_LOADING_DEFAULT_MODE -
低
目次(Table of Contents)ブロックは 7.1 に入らなかった
ロードマップで Playlist・Tabs と並んで予定されていた Table of Contents ブロックは 7.1.0 に含まれていない(Playlist と Tabs は出荷)。
目次ブロックをコア提供と見なして独自実装を外す判断はまだしないこと。 -
低
Unicode メールアドレス対応は 7.1 に入らなかった
is_email() / sanitize_email() で非 ASCII のメールアドレスを受け付け、WP_Email_Address クラスを追加する変更は trunk に [62482] でマージされテスト募集も行われたが、7.1.0 のコードには含まれていない(wp_is_unicode_email / WP_Email_Address が存在しない)。
メールアドレスが ASCII のみである前提は 7.1 でも維持される。将来の導入に備え、マルチバイト文字を含むメールアドレスの扱いは引き続き注視すること。
WordPress 7.0 final
情報源(35)
- https://github.com/WordPress/wordpress-develop/compare/6.9.0...26b68024931348d267b70e2a29910e1320d0094f git
- WordPress 7.0 Field Guide field-guide
- Planning for 7.0 roadmap
- Dropping support for PHP 7.2 and 7.3 dev-note
- Changes to the Interactivity API in WordPress 7.0 dev-note
- Iframed Editor Changes in WordPress 7.0 dev-note
- PHP-only block registration dev-note
- DataViews, DataForm, et al. in WordPress 7.0 dev-note
- Customizable Navigation Overlays in WordPress 7.0 dev-note
- Breadcrumb block filters dev-note
- Pseudo-element support for blocks and their variations in theme.json dev-note
- Real-Time Collaboration in the Block Editor dev-note
- New Block Support: Text Indent (textIndent) dev-note
- Custom CSS for Individual Block Instances in WordPress 7.0 dev-note
- Dimensions Support Enhancements in WordPress 7.0 dev-note
- Block Visibility in WordPress 7.0 dev-note
- Pattern Editing in WordPress 7.0 dev-note
- Pattern Overrides in WP 7.0: Support for Custom Blocks dev-note
- Introducing the Connectors API in WordPress 7.0 dev-note
- Introducing the AI Client in WordPress 7.0 dev-note
- Client-Side Abilities API in WordPress 7.0 dev-note
- Building a custom sync provider for real-time collaboration dev-note
- Roster of design tools per block (WordPress 7.0 edition) dev-note
- Removing title attributes in author link functions dev-note
- Accessibility Improvements in WordPress 7.0 dev-note
- Proposal for merging WP AI Client into WordPress 7.0 other
- WordPress 7.0 Beta 6 release
- Extending the 7.0 Cycle other
- The Path Forward for WordPress 7.0 other
- Real-time collaboration will not ship in WordPress 7.0 other
- Dev Chat Agenda – May 13, 2026 other
- WordPress 7.0 Release Candidate 5 release
- React 19 upgrade in WordPress other
- WordCamp Asia 2026 Core Committers Meeting other
- wordpress-develop 6.9.0...7.0.0(シンボル確認用) git
-
高
PHP の最低要件が 7.2.24 から 7.4 に変わった
-
高
public メソッド
WP_Font_Face::__constructが削除された -
高
PHP AI Client がコアに同梱され、プラグインの同梱版とクラスが衝突する
7.0 は
wordpress/php-ai-client(名前空間WordPress\AiClient)とその依存をコアでロードするため、同じライブラリを Composer で同梱しているプラグインはクラス重複定義で衝突する。
7.0 以上を必須にして依存を外しAI_Client::prompt()をwp_ai_client_prompt()に置き換えるか、7.0 未満のときだけ autoloader を読み込む条件分岐を入れること。
wordpress/wp-ai-clientパッケージは 7.0 を検知して自動で PHP 部分を無効化するが、最新版への更新が必要。WordPress\AiClient\AiClient→wp_ai_client_prompt/wordpress/(php|wp)-ai-client|WordPress\\AiClient\\/introducing-the-ai-client-in-wordpress-7-0 wordpress-7-0-field-guide #
-
中
addslashes_gpcが非推奨になった(7.0.0) -
中
wp_sanitize_script_attributesが非推奨になった(7.0.0) -
中
スクリプトハンドル wp-admin-ui / wp-views / wp-latex-to-mathml が登録されなくなった
6.9 でパッケージから自動登録されていた classic スクリプトの
wp-admin-ui・wp-views・wp-latex-to-mathmlが 7.0 の script-loader-packages から消えた(latex-to-mathml はスクリプトモジュール@wordpress/latex-to-mathmlに移行)。
これらを依存に指定したスクリプトは依存解決に失敗して読み込まれない。Dev Note には記載がなく、ソース比較で確認した変更。wp-admin-uiwp-viewswp-latex-to-mathml→@wordpress/latex-to-mathml -
中
Block Hooks の REST 処理が個別フィルタから REST コントローラへ移動した
6.9 までは
rest_prepare_{post,page,wp_block,wp_navigation}/rest_pre_insert_*にinsert_hooked_blocks_into_rest_response()とupdate_ignored_hooked_blocks_postmeta()がフィルタとして登録されていたが、7.0 ではWP_REST_Posts_Controllerから直接呼ばれる。
これらをremove_filter()して Block Hooks を止めていたコードは効かなくなる。対象投稿タイプの制御には新フィルタrest_block_hooks_post_typesを使う(コンテンツ系 CPT もここで追加できる)。insert_hooked_blocks_into_rest_responseupdate_ignored_hooked_blocks_postmetarest_block_hooks_post_types/remove_filter\s*\(\s*['"]rest_(prepare|pre_insert)_[a-z_]+['"]\s*,\s*['"](insert_hooked_blocks_into_rest_response|update_ignored_hooked_blocks_postmeta)/ -
中
blockVisibility メタデータが boolean だけでなくオブジェクト(viewport 指定)を取るようになった
ブロックの
metadata.blockVisibilityは 6.9 のfalseに加え、7.0 では{ "viewport": { "mobile": false, ... } }形式を取る。ビューポート単位の非表示は DOM には出力され CSS で隠される。
サーバー側でブロックマークアップを生成・変換・解析するコードが blockVisibility をスカラー前提で扱っている場合、両方の型に対応させること。/blockVisibility/block-visibility-in-wordpress-7-0 wordpress-7-0-field-guide #
-
中
CodeMirror が 5.65 系に更新され、esprima / jshint ハンドルが非推奨になった
wp-codemirrorが 5.29.1-alpha から 5.65.20 に、HTMLHint が 0.9.14 から 1.8.0 に更新され、JS の構文チェックは Esprima から Espree(ES6 対応)に置き換えられた。esprimaとjshintスクリプトハンドルは非推奨。
wp_enqueue_code_editor()の設定や CodeMirror のアドオン・内部 API に依存するコードは動作確認すること。wp-codemirroresprimajshinthtmlhintwp_enqueue_code_editor -
中
マルチサイトでユーザーをスパム指定してもサイトが自動でスパム扱いにならなくなった
ネットワーク管理のユーザー一覧でユーザーをスパム指定(解除)した際、そのユーザーの所属サイトを
update_blog_status( ..., 'spam', ... )で連動させる処理がデフォルトで無効になった。
従来の挙動が必要ならpropagate_network_user_spam_to_blogsフィルタで true を返す。またネットワーク管理者はスパム指定できなくなった(403)。propagate_network_user_spam_to_blogsupdate_blog_status -
中
非同期パターンとテンプレートパーツが既定で contentOnly 編集モードになった
挿入された非同期(unsynced)パターンとテンプレートパーツは既定で
contentOnlyモードになり、内側ブロックの構造やスタイルは「パターンを編集」しない限り触れない。
カスタムブロックは、編集可能にしたい属性に"role": "content"(またはサポートcontentRole: true)がないと List View から隠れ選択不能になる。パターン内のブロックに依存するツールバー・サイドバーも表示されない可能性がある。
無効化はblock_editor_settings_allでdisableContentOnlyForUnsyncedPatternsを true にする。テーマのパターン(特に Buttons/List/Social Icons/Navigation を含むもの)を確認すること。/register_block_pattern\s*\(|"role"\s*:\s*"content"/pattern-editing-in-wordpress-7-0 wordpress-7-0-field-guide #
-
中
投稿エディタの iframe 判定が「登録済みブロック」から「挿入済みブロック」の apiVersion に変わった
6.9 までは登録済みの全ブロックが apiVersion 3 以上のときだけ投稿エディタが iframe 化されたが、7.0 では投稿に実際に挿入されているブロックだけを判定する。
apiVersion 2 以下のブロックを登録していても、その投稿で使っていなければエディタは iframe 化されるため、エディタ用 JS/CSS がdocument/windowを直接参照するプラグインは iframe 内で動かなくなる可能性がある。ブロックを apiVersion 3 に上げ、iframe 前提でテストすること。/['"]?apiVersion['"]?\s*[:=]>?\s*[12]\b/iframed-editor-changes-in-wordpress-7-0 wordpress-7-0-field-guide #
-
低
投稿者リンク系関数から title 属性が削除された
get_the_author_posts_link()/the_author_posts_link()とwp_list_authors()の出力から「Posts by ○○」の title 属性がデフォルトで削除された。get_the_author_link()/the_author_link()は新引数$use_title_attrで削除可能(デフォルトは従来どおり付与)。
the_author_posts_linkフィルタには第2・第3引数(表示名と旧 title テキスト)が追加された。title 属性をセレクタや JS で参照しているテーマ・テストは修正が必要。get_the_author_posts_linkthe_author_posts_linkwp_list_authorsget_the_author_linkthe_author_linkthe_author_posts_linkremoving-title-attributes-in-author-link-functions accessibility-improvements-in-wordpress-7-0 #
-
低
Connectors API が API キーを環境変数・定数・オプションから自動で読む
Settings > Connectors 画面と Connectors API が追加され、AI プロバイダーの API キーを環境変数 → PHP 定数(
{PROVIDER_ID}_API_KEY、例ANTHROPIC_API_KEY)→ DB オプション(connectors_ai_{id}_api_key)の順に参照する。DB 保存のキーは暗号化されない。
独自用途で同名の定数・環境変数を定義しているプラグインは、そのキーがコアの AI Client からも使われる点に注意。Akismet も組み込みコネクタとしてwordpress_api_key/WPCOM_API_KEYが画面に表示される。
コネクタのメタデータ変更はwp_connectors_initアクション内でのみ可能(unregister → register)。ANTHROPIC_API_KEYconnectors_ai_anthropic_api_keywp_connectors_init/\b(ANTHROPIC|OPENAI|GOOGLE)_API_KEY\b/introducing-the-connectors-api-in-wordpress-7-0 wordpress-7-0-field-guide #
-
低
html5 テーマサポートの script / style 指定が非推奨・無視され、常に HTML5 形式で出力される
add_theme_support( 'html5', array( 'script', 'style' ) )の script/style 引数は 7.0 で非推奨かつ未使用になり、テーマのサポート有無にかかわらず<script>/<style>にtype属性や CDATA ラッパーが付かなくなった。
出力 HTML のtype="text/javascript"等に依存するパーサ・テスト・正規表現置換は見直すこと。/type=['"]text/(javascript|css)['"]|current_theme_supports\s*\(\s*['"]html5['"]\s*,\s*['"](script|style)/ -
低
アップロード時に画像の IPTC メタデータから代替テキストが自動設定される
新関数
wp_get_image_alttext()によりwp_read_image_metadata()の結果にaltが加わり、アップロード時に IPTC の Alt Text が_wp_attachment_image_altに保存されるようになった。
代替テキストを自動生成・上書きするプラグイン(AI alt 生成など)は、既に値が入っているケースを考慮すること。wp_read_image_metadatawp_get_image_alttextwp_read_image_metadata/_wp_attachment_image_alt/accessibility-improvements-in-wordpress-7-0 wordpress-7-0-field-guide #
-
低
plugins_list に追加した独自ステータスがプラグイン一覧のタブとして表示される
plugins_listフィルタで追加したカスタムステータスが、プラグイン一覧画面の絞り込みタブとして表示されるようになった。ラベルは新フィルタplugins_list_status_textで変更でき、未指定ならステータスのスラッグがそのまま表示される。
plugins_listに独自キーを足しているプラグインは、意図しないタブが出ないか確認すること。plugins_listplugins_list_status_text -
低
.screen-reader-text に word-break が指定された
スクリーンリーダーが隠しテキストを1文字ずつ読み上げる問題への対策として、管理画面の
.screen-reader-textにword-break: normal !importantが追加された。
同クラスを上書きしているプラグインの CSS は影響を確認すること。.screen-reader-textaccessibility-improvements-in-wordpress-7-0 wordpress-7-0-field-guide #
-
低
DataViews の view 設定 groupByField が groupBy オブジェクトに置き換えられた
@wordpress/dataviewsの view 設定でgroupByField: 'status'はgroupBy: { field, direction, showLabel }に置き換えられた。
DataViews を npm から同梱しているプラグインは、7.0 世代のパッケージへ更新する際に view 設定を書き換えること。@wordpress/dataviews/groupByField/ -
低
core/router の state.url がサーバー側で初期化されるようになった
これまでは
@wordpress/interactivity-routerの読み込み完了までstate.urlが undefined で、その後window.location.hrefがセットされていたが、7.0 ではディレクティブ処理時にサーバーで値が入り、最初のクライアントナビゲーションまで変化しない。
初期の undefined → URL の変化を「ナビゲーション」として扱っていた、あるいはそれを除外するガードを書いていたストアは挙動を確認すること。/store\s*\(\s*['"]core/router['"]/ -
低
新規ユーザーのデフォルト権限グループから管理者・編集者が選べなくなった
設定 > 一般の「新規ユーザーのデフォルト権限グループ」から administrator と editor が除外され、既にどちらかが設定されている場合は Site Health が警告する。
除外ロールはdefault_role_dropdown_excluded_rolesフィルタで変更可能。会員サイト等でdefault_roleを高権限に設定する運用・プラグインは確認が必要。default_roledefault_role_dropdown_excluded_roles -
低
管理画面の既定配色が Modern になり、管理画面全体のスタイルが刷新された
新規ユーザーの既定
admin_colorがfreshからmodernになり、管理ヘッダー・カスタマイザー・マルチサイトのサインアップ等の配色・コントラスト・タイポグラフィが変更された。さらに管理メニューにクロスドキュメント View Transitions が付いた。
旧配色の色コードや管理画面の既存スタイルにハードコードで合わせた独自管理画面は見た目を確認し、可能なら CSS 変数/配色スキームに追従させること。wordpress-7-0-field-guide accessibility-improvements-in-wordpress-7-0 #
-
低
全ブロックで customCSS サポートが既定有効になり、レンダリング時にクラスが注入される
新しい
customCSSブロックサポートが全ブロックで既定有効になり、style.css属性に CSS を保存し、フロントでは最外要素にhas-custom-cssとwp-custom-css-{hash}クラスが付与される(edit_css権限のユーザーのみ編集可)。
サーバーレンダリングのブロックは最初の HTML 要素にWP_HTML_Tag_Processorでクラスが注入されるため、最外要素が標準 HTML 要素でないブロックや生 HTML を出すブロックは"supports": { "customCSS": false }でオプトアウトすること。.has-custom-csscustom-css-for-individual-block-instances-in-wordpress-7-0 wordpress-7-0-field-guide #
-
低
@wordpress/components の下マージンが全廃され、マージンなしが既定になった
すべてのコンポーネントから下マージンが削除され、これまで
__nextHasNoMarginBottomでオプトインしていたマージンなしスタイルが既定になった。
コンポーネントの既定マージンに頼ってレイアウトしていた設定画面・サイドバーは間隔が詰まるため、VStackなどで明示的に余白を付けること。__nextHasNoMarginBottom指定は不要になる。@wordpress/components/__nextHasNoMarginBottom/ -
低
クライアント側 Abilities API(@wordpress/core-abilities)が管理画面で読み込まれる
Dev Note によれば 7.0 は全管理画面で
@wordpress/core-abilitiesを読み込み、REST(/wp-abilities/v1/)経由でサーバー登録済みのアビリティをクライアントのcore/abilitiesストアへ自動登録する。
管理画面の REST リクエストが増える点と、wp_register_ability()で登録したアビリティがクライアントからも実行可能になる点(permission_callback の確認)に留意。@wordpress/core-abilitieswp_register_ability -
低
Verse ブロックの表示名が Poetry に変わった(ブロック名は core/verse のまま)
core/verseブロックのタイトルが「Poetry」に変更された。ブロック名やマークアップは変わらないため保存済みコンテンツへの影響はない。
エディタ上のタイトル文字列で Verse ブロックを探す E2E テストやドキュメント・ヘルプは更新が必要。core/verse -
低
AI Client の REST エンドポイントと JavaScript API はコアに入らなかった
マージ提案では REST エンドポイント+JS API も対象だったが、7.0 のコアに入ったのは PHP API(
wp_ai_client_prompt())のみ。
ブラウザから AI を呼ぶ場合はwordpress/wp-ai-clientパッケージを使うか、機能ごとに専用の REST エンドポイントを自作する必要がある(後者が推奨)。proposal-for-merging-wp-ai-client-into-wordpress-7-0 introducing-the-ai-client-in-wordpress-7-0 #
-
低
クライアントサイドのメディア処理は Beta 6 で差し戻され 7.0 に入らなかった
ブラウザ側で画像最適化を行う Client-side Media Processing は Beta 1〜5 に含まれていたが、画像最適化とパッケージサイズの問題から Beta 6 で revert され、7.1 以降に持ち越された。
7.0 のアップロードは従来どおりサーバー側(GD/Imagick)で処理されるため、画像サイズ生成フックに依存するプラグインへの影響はない。wordpress-7-0-beta-6 wordcamp-asia-2026-core-committers-meeting planning-for-7-0 #
-
低
投稿エディタの iframe 強制は 7.0 では見送られた
計画では投稿エディタを無条件に iframe 化する予定だったが、7.0 では強制されない(Gutenberg プラグイン 22.6 以降ではクラシックテーマでも強制)。
ただし iframe 化の判定条件は 7.0 で変わっているのでeditor_js:post-editor-iframe-inserted-blocksを参照。apiVersion 3 への移行は引き続き推奨。 -
低
Playlist ブロックは 7.0 に入らなかった
計画にあった Playlist ブロックは Field Guide から言及が削除され(5/17 の編集)、7.0.0 では
core/playlistブロックは登録されていない。
7.0 で Playlist ブロックが使える前提の案内・パターンは作らないこと。 -
低
React 19 へのアップグレードは 7.0 に入らなかった(React 18.3.1 のまま)
7.0 の計画に React 19 への移行が挙がっていたが、7.0.0 の
react/react-domハンドルは 18.3.1 のまま。
React 19 はその後 Gutenberg 側でも一度 revert され、実験的機能扱いとなっている。7.0 対応のために React 19 前提の書き換えは不要。 -
低
リアルタイム共同編集(RTC)は 7.0 で出荷されなかった
Yjs ベースのリアルタイム共同編集は Dev Note・Beta 告知(WP_ALLOW_COLLABORATION 定数、HTTP ポーリング)まで出たが、2026-05-08 に 7.0 から削除が決定され RC3 以降のビルドには含まれない。
sync.providersJS フィルタや WP_ALLOW_COLLABORATION 定数を前提にしたコード、および「メタボックスがあると共同編集が無効になる」前提の対応は 7.0 では不要(7.0.0 のソースにも該当定数は存在しない)。
メタボックスをshow_in_rest付き post meta へ移行する作業自体は将来の再導入に備えて有効。/sync\.providers|WP_ALLOW_COLLABORATION/rtc-removed-from-7-0 dev-chat-agenda-may-13-2026 real-time-collaboration-in-the-block-editor building-a-custom-sync-provider-for-real-time-collaboration extending-the-7-0-cycle #
-
低
テンプレート管理(Template Organization/Management)の刷新は差し戻され 7.0 に入らなかった
計画段階で挙がっていたテンプレート管理の改善(テーマ切り替えをまたいだテンプレートパーツの保持など)は、7.0 サイクル中に revert され 7.1 以降へ持ち越された。
テンプレートパーツは引き続きアクティブテーマに紐づく(ナビゲーションオーバーレイも同様の既知の制約あり)。wordcamp-asia-2026-core-committers-meeting planning-for-7-0 #
WordPress 6.9 final
情報源(32)
- https://github.com/WordPress/wordpress-develop/compare/6.8.0...3a87241015aff96c7a38c1304949908b9588b218 git
- WordPress 6.9 Field Guide field-guide
- Roadmap to 6.9 roadmap
- WordPress 6.9 Beta 1 release
- WordPress 6.9 Beta 4 release
- WordPress 6.9 Release Candidate 4 release
- WordPress 6.9 Hotfixes release
- Adjacent Post Navigation Changes in WordPress 6.9 and Compatibility Issues dev-note
- Ability to Hide Blocks in WordPress 6.9 dev-note
- Miscellaneous Editor Changes in WordPress 6.9 dev-note
- Updates to the HTML API in 6.9 dev-note
- PHP 8.5 support in WordPress 6.9 dev-note
- Accessibility Improvements in WordPress 6.9 dev-note
- Admin menu search query changed dev-note
- Legacy Internet Explorer Code Removed dev-note
- Introducing the streaming block parser in WordPress 6.9 dev-note
- URL-escaping functions can support HTTPS as the default protocol in WordPress 6.9 dev-note
- More-reliable email in WordPress 6.9 dev-note
- Modernizing UTF-8 support in WordPress 6.9 dev-note
- WordPress 6.9 Frontend Performance Field Guide dev-note
- Consistent Cache Keys for Query Groups in WordPress 6.9 dev-note
- Miscellaneous Developer-focused Changes in 6.9 dev-note
- Notes feature in WordPress 6.9 dev-note
- Heading Block CSS Specificity Fix in WordPress 6.9 dev-note
- Changes to the Interactivity API in WordPress 6.9 dev-note
- Interactivity API’s client navigation improvements in WordPress 6.9 dev-note
- Preparing the Post Editor for Full iframe Integration dev-note
- Block Bindings improvements in WordPress 6.9 dev-note
- Theme.json Border Radius Presets Support in WordPress 6.9 dev-note
- DataViews, DataForm, et al. in WordPress 6.9 dev-note
- Abilities API in WordPress 6.9 dev-note
- Prettier Emails: Supporting Inline Embedded Images dev-note
-
高
スクリプト ハンドル
swfobjectが登録されなくなった -
高
スクリプト ハンドル
swfuploadが登録されなくなった -
高
スクリプト ハンドル
swfupload-allが登録されなくなった -
高
スクリプト ハンドル
swfupload-handlersが登録されなくなった -
高
public メソッド
WP_PHPMailer::SetLanguageが削除された -
高
get_adjacent_post() の WHERE 句に ID のタイブレークが追加され、WHERE を書き換えるフィルターが無限ループし得る
同一 post_date の投稿で前後ナビゲーションが壊れるバグ修正として、get_adjacent_post() の WHERE 句が
「日付 > X OR (日付 = X AND p.ID > N)」の形になり、ORDER BY にも p.ID が追加された。
get_{$adjacent}_post_where フィルターで投稿日付を str_replace して「隣」の投稿を差し替えている
プラグイン・テーマ(Storefront 系など)は ID 比較が残るため同じ投稿を返し続け、無限ループになる。
日付に加えてAND p.ID <|> {ID}部分も置換するよう修正すること。get_{$adjacent}_post_whereget_next_post_whereget_previous_post_whereget_adjacent_post/get_(next|previous|\{\$adjacent\})_post_where/adjacent-post-navigation-changes-in-wordpress-6-9-and-compatibility-issues wordpress-6-9-hotfixes #
-
中
seems_utf8が非推奨になった(6.9.0) -
中
wp_print_auto_sizes_contain_css_fixが非推奨になった(6.9.0) -
中
WP_Debug_Data::get_sizesが非推奨になった(5.6.0) -
中
HTML API に null を渡すと _doing_it_wrong になり、HTML Processor の生成メソッドは null を返す
WP_HTML_Tag_Processor のコンストラクタは null を空文字にキャストし _doing_it_wrong() を出す。
WP_HTML_Processor::create_fragment() / create_full_parser() に文字列以外を渡すと、インスタンスではなく null が返る。
戻り値を検査せずにメソッドを呼ぶと Fatal になるため、入力を文字列に保証するか戻り値をチェックすること。WP_HTML_Tag_ProcessorWP_HTML_Processor::create_fragmentWP_HTML_Processor::create_full_parser -
中
IE 条件付きコメント(conditional)で登録したスクリプト・スタイルは出力されなくなった
wp_script_add_data() / wp_style_add_data() の 'conditional' は廃止され、WP_DEBUG 時に非推奨 Notice が出る。
conditional 指定されたアセットは出力されず、他から必要とされていないその依存アセットも出力されない。
conditional を指定していたコードは削除するか、条件なしで読み込むよう修正すること。wp_script_add_datawp_style_add_data/_add_data\s*\([^)]*['"]conditional['"]/ -
中
クエリキャッシュのキー生成が変わり、last_changed をキーに含めなくなった
WP_Query・コメント・ターム・ユーザー・サイト・ネットワーク等のクエリキャッシュは、last_changed をキーの一部にせず
値と一緒に保存して比較する方式(wp_cache_get_salted() など4関数)に変わった。post-queries / comment-queries 等のグループで
wp_query・get_comments・adjacent_post・get_page_by_path などで始まるキーを直接読み書きしていたコードはキーが一致しなくなる。
function_exists( 'wp_cache_get_salted' ) で分岐して新関数を使うこと。永続オブジェクトキャッシュのドロップインは変更不要。wp_cache_get_saltedwp_cache_set_saltedwp_cache_get_multiple_saltedwp_cache_set_multiple_salted/wp_cache_(get|set|delete|add)\s*\([^;]*['"](post|comment|term|user|site|network)-queries['"]/ -
中
apiVersion 1/2 のブロックはコンソール警告が出て、block.json スキーマは apiVersion 3 のみ許可に
7.0 での投稿エディタ完全 iframe 化に向け、SCRIPT_DEBUG 有効時に apiVersion 2 以下で登録されたブロックはブラウザコンソールに警告が出る。
block.json スキーマは apiVersion 3 以外を検証エラーにする。6.9 では apiVersion 2 以下のブロックがあると従来どおり非 iframe で動くが、
7.0 以降を見据えて apiVersion 3 へ移行し、iframe 内で動作確認すること。/["']?apiVersion["']?\s*:\s*[12]\b/preparing-the-post-editor-for-full-iframe-integration wordpress-6-9-field-guide #
-
中
@wordpress/core-data の media エンティティが非推奨になり attachment エンティティに統合
getMedia / getMediaItems セレクター、saveMedia / deleteMedia アクション、および ( 'root', 'media' ) を渡す
getEntityRecord(s) / saveEntityRecord 等は非推奨メッセージを出す。( 'postType', 'attachment' ) に置き換えること。
なお getEditedEntityRecord で attachment を取得すると caption は文字列ではなく { raw, rendered } オブジェクトで返るため、caption.raw を参照するよう修正が必要。@wordpress/core-data/\b(getMedia|getMediaItems|saveMedia|deleteMedia)\s*\(|['"]root['"]\s*,\s*['"]media['"]/ -
中
クラシックテーマでもブロックスタイルがオンデマンド読み込みになり、wp-block-library 一括CSSが出なくなった
6.9 ではクラシックテーマも既定で should_load_separate_core_block_assets が有効になり(wp_load_classic_theme_block_styles_on_demand())、
テンプレート出力をバッファしてブロックごとのCSSを <head> へ持ち上げる。巨大な wp-block-library を前提にしていたテーマで
スタイル欠落やカスケード順の変化が報告されている(#64354、6.9 ホットフィックス記事)。do_blocks() を通さない独自出力のブロックは
CSS が読み込まれないので wp_enqueue_style( 'wp-block-video' ) 等で明示的に読み込むこと。また wp-block-library を登録解除し
global-styles を wp_enqueue_scripts で dequeue してブロックCSSを全廃していたコードは効かなくなる(global-styles は wp_footer で読み込まれる)。
回避策は init より前に should_load_separate_core_block_assets を false にすること。出力バッファにより TTFB も増える。should_load_separate_core_block_assetswp_load_classic_theme_block_styles_on_demandwp-block-libraryglobal-styles/wp_(deregister|dequeue)_style\s*\(\s*['"](wp-block-library|global-styles)['"]/wordpress-6-9-frontend-performance-field-guide wordpress-6-9-hotfixes #
-
中
wp_mail() が送信者アドレス(Envelope-From)を設定するようになり、一部環境でメールが送れなくなった
wp_mail() は From ヘッダー(なければ wordpress@ドメイン)を Envelope-From/Sender として設定するようになった。
エンコーディングの呼び出し間リセットや multipart の Content-Type 修正も入っている。phpmailer_init で Sender を
設定していた回避策は不要になる場合がある一方、一部のメール構成では 6.9 で送信できなくなる不具合が報告されている(#64368、Hotfix プラグインで回避)。
独自の SMTP/メール設定を持つプラグインは送信テストを行い、必要なら wp_mail_from フィルターで調整すること。wp_mailwp_mail_fromphpmailer_initmore-reliable-email-in-wordpress-6-9 wordpress-6-9-hotfixes #
-
中
ブロックの「ノート」がコメントテーブルに comment_type=note として保存される
新機能 Notes は wp_comments に comment_type 'note'(未解決=comment_approved 0、解決=1)として保存される。
WP_Comment_Query / get_comments() は type に 'note' か 'all' を指定しない限りノートを除外するが、
wp_comments を直接 SQL で集計・エクスポート・削除しているプラグインにはノートが混入する。
ノートには flood/重複チェックや pre_comment_approved が適用されず、投稿者への通知は notify_post_author で制御される。
post/page 以外では post_type_supports の editor => array( 'notes' => true ) で有効化する。WP_Comment_Queryget_commentsnotify_post_author/\$wpdb->comments/ -
低
Gzdecodeが非推奨になった(unknown) -
低
Misc::element_implodeが非推奨になった(unknown) -
低
Misc::parse_strが非推奨になった(unknown) -
低
Misc::percent_encoding_normalizationが非推奨になった(unknown) -
低
Misc::strip_commentsが非推奨になった(unknown) -
低
Misc::uncomment_rfc822が非推奨になった(unknown) -
低
Sanitize::pass_file_dataが非推奨になった(unknown) -
低
SimplePie::set_fileが非推奨になった(unknown) -
低
Interactivity API の data-wp-ignore ディレクティブが非推奨になった
data-wp-ignore はコンテキスト継承やクライアントナビゲーションを壊すため 6.9 で非推奨となり、今後のバージョンで削除予定。
使用箇所を削除すること。あわせて、同種ディレクティブを複数付与するための一意ID構文(data-wp-on--click---my-id)が導入された。@wordpress/interactivity/data-wp-ignore/ -
低
_wp_can_use_pcre_uの引数が非推奨になった(6.9.0) -
低
WP_Dependencies::add_dataの引数が非推奨になった(6.9.0) -
低
esc_url() 系は $protocols の先頭が https のとき、スキームのない URL に https:// を補うようになった
esc_url() / esc_url_raw() / sanitize_url() は、スキームのない URL に対し $protocols の先頭要素が 'https' なら https:// を付与する。
従来 array( 'https' ) のみを渡すと空文字になっていたケースが、6.9 では https:// 付き URL を返すようになる。
既定($protocols 未指定)の挙動は変わらない。esc_urlesc_url_rawsanitize_urlurl-escaping-functions-can-support-https-as-the-default-protocol-in-wordpress-6-9 #
-
低
fetch_feed() のキャッシュがサイトトランジェントに保存されるようになった
fetch_feed() は (get|set)_transient() ではなく (get|set)_site_transient() でフィードをキャッシュする。マルチサイトでは
全サイトでキャッシュが共有される。また 6.7 以降壊れていたフィードキャッシュ(SimplePie 更新起因)が修正された。
フィードのトランジェントを直接読み書き・削除しているコードは保存先の変更に注意すること。fetch_feedWP_Feed_Cache_Transientmiscellaneous-developer-focused-changes-in-6-9 wordpress-6-9-frontend-performance-field-guide #
-
低
UTF-8 処理が純PHPのフォールバックに統一され、wp_check_invalid_utf8() の strip 挙動が変わった
mbstring や PCRE の Unicode サポートがない環境でも一貫した UTF-8 処理を行う _wp_scan_utf8() ベースのフォールバックが入り、
mb_strlen()/mb_substr() のフォールバック結果が変わる場合がある。wp_check_invalid_utf8( $text, true ) は従来 false を返していたが、
不正バイト列を置換文字に置き換えて返すようになった。新規コードは wp_is_valid_utf8() / wp_scrub_utf8() を使い、
utf8_encode()/utf8_decode() は一時的なポリフィルなので mb_convert_encoding() に移行すること。wp_check_invalid_utf8→wp_scrub_utf8utf8_encode→mb_convert_encodingutf8_decode→mb_convert_encoding -
低
wp_mail() に第6引数 $embeds が追加された(pluggable で上書きしている場合は追従が必要)
wp_mail( $to, $subject, $message, $headers, $attachments, $embeds ) となり、cid: 参照のインライン画像を添付できる。
各画像は wp_mail_embed_args フィルターで調整できる。wp_mail() を pluggable で丸ごと置き換えているプラグインは
$embeds 引数と wp_mail_embed_args を扱わないと、この機能を使う他プラグインのメールで画像が欠落する。wp_mailwp_mail_embed_args/function\s+wp_mail\s*\(/ -
低
背景付き見出しのパディングが .wp-block-heading にのみ適用されるようになった
見出しの背景パディングのセレクタが h1〜h6.has-background から :where(.wp-block-heading).has-background に変わった(詳細度は 0-1-1 のまま)。
テーマが見出しブロック以外の h 要素に has-background を付けて既定パディングに頼っていた場合、パディングが消えるので明示的に指定すること。.has-background.wp-block-headingcore/heading/h[1-6][^{]*\.has-background/ -
低
SelectControl のクラス名(components-select-control と className)がルート要素に移った
@wordpress/components の SelectControl は、既定クラス components-select-control と className プロップを内部の
components-input-base 要素ではなくルートの components-base-control に付与するようになった。
内部構造を前提にしたカスタムCSS(例: .components-select-control の子孫セレクタ)は修正が必要。.components-select-control@wordpress/components -
低
@wordpress/dataviews の Field API isValid がルール形式になり、isItemValid が削除された
フィールドの isValid は関数 ( item, context ) => boolean から { required, elements, custom } のルールオブジェクトに変わった
(custom は同期・非同期でエラーメッセージ文字列か null を返す)。DataForm の検証は validity プロップによる制御型になり、
isItemValid ユーティリティは削除され useFormValidity フックに置き換えられた。npm パッケージを更新するプラグインは移行が必要。@wordpress/dataviews/isItemValid|isValid\s*:\s*\(/ -
低
絵文字検出スクリプトがフッターのスクリプトモジュールになり、_wpemojiSettings の定義タイミングが遅れた
絵文字検出スクリプトは <head> のインラインスクリプトから、フッターのインラインスクリプトモジュールに変わり、設定は
script#wp-emoji-settings の JSON として出力される。window._wpemojiSettings は DOMContentLoaded までに設定されるが、
それ以前に参照するコードは JSON から読むよう修正すること。remove_action( 'wp_head', 'print_emoji_detection_script', 7 ) による無効化は引き続き有効。print_emoji_detection_script/_wpemojiSettings/ -
低
同梱ライブラリ PHPMailer・SimplePie・Sodium Compat が更新された
PHPMailer 6.9.1→6.11.1、SimplePie 1.8.0→1.9.0、Sodium Compat 1.21.1→1.23.0 に更新され、getID3 に PHP 8.5 対応パッチが入った。
これらのクラスを直接利用・継承しているプラグインは動作確認すること。個別の削除・非推奨は extracted を参照。WP_PHPMailerSimplePie -
低
wp_kses()・get_url_in_content()・HTML API の細かな出力変化
unfiltered_html を持たないユーザーの wp_kses() は数値文字参照をアンエスケープしなくなり、一部の HTML5 セマンティックタグが許可された。
get_url_in_content() は Tag Processor ベースになり常にデコード済みの href を返す。set_modifiable_text() は SCRIPT 内容に
<script / </script を含む更新を拒否し、set_attribute() は構文文字を直接文字参照にエスケープする。
クラシックテーマの画像ブロック処理も PCRE から HTML API に置き換わった。出力文字列を厳密比較するテストや後処理は確認すること。wp_ksesget_url_in_contentWP_HTML_Tag_Processor::set_modifiable_textWP_HTML_Tag_Processor::set_attribute -
低
インライン化されるCSSの上限が20KBから40KBに増え、oEmbed discovery リンクの出力位置が前に移った
path データ付きスタイルをインライン化する既定上限(styles_inline_size_limit)が 40KB になり、外部CSSファイルだった
スタイルが <style> として出力される場面が増える。CSS の外部ファイル化を前提にしたキャッシュ・最適化系プラグインは確認すること。
また wp_oembed_add_discovery_links() はスクリプト・スタイルより前(wp_head 優先度4)に出力されるようになった。
oEmbed リンクを消すには remove_action ではなく oembed_discovery_links フィルターの使用が推奨される。styles_inline_size_limitwp_oembed_add_discovery_linksoembed_discovery_links -
低
テンプレート全体の出力バッファ(template enhancement output buffer)が導入された
template_include 適用後に wp_before_include_template アクションが発火し、そこで出力バッファが開始される
(wp_template_enhancement_output_buffer フィルター等にコールバックがある場合や、クラシックテーマのオンデマンドCSSで使用)。
独自に ob_start() でページ全体をバッファしていたキャッシュ・最適化プラグインは二重バッファになるため動作確認すること。
このフィルター/wp_finalized_template_enhancement_output_buffer アクション内で ob_start() を呼ぶと Fatal、アクション内での echo は出力されない。
バッファは wp_should_output_buffer_template_for_enhancement フィルターで強制的に無効化できる。wp_before_include_templatewp_template_enhancement_output_bufferwp_finalized_template_enhancement_output_bufferwp_template_enhancement_output_buffer_startedwp_should_output_buffer_template_for_enhancement -
低
WP Cron の起動が init から shutdown に移った
TTFB 改善のため _wp_cron() は shutdown アクションで実行されるようになった。cron の起動タイミングや、
リクエスト前半で cron が走ることを前提にしたコードは確認すること。ALTERNATE_WP_CRON 環境で壊れる問題は RC4 で修正済み(#64315)。_wp_cronwp_cronALTERNATE_WP_CRONwordpress-6-9-frontend-performance-field-guide wordpress-6-9-release-candidate-4 #
-
低
Twenty Twenty-Two / Twenty Twenty-Five は style.min.css を配信するようになった
コアのブロックテーマ TT2・TT5 のスタイルシートはミニファイ版(style.min.css)が既定で読み込まれ、インライン化の対象にもなった。
style.css を直接編集している場合や、そのハンドルの出力形式(外部ファイル)に依存するコードは反映されないので注意。
変更は Site Editor か子テーマで行うこと。 -
低
Video ブロックの video 要素に width/height 属性と aspect-ratio が付与されるようになった
レイアウトシフト防止のため、Video ブロックの <video> に動画の width/height 属性とインラインの aspect-ratio が追加され、
ブロックCSSで height:auto が指定された。動画サイズを独自CSSで制御しているテーマは表示を確認すること。core/video -
低
getActiveBlockVariation が isActive に一致しない場合 isDefault のバリエーションにフォールバックする
どのバリエーションの isActive にも一致しないブロックは、isActive を持たない isDefault: true のバリエーションがあればそれがアクティブと判定される
(block / transform スコープのみ、inserter には適用されない)。ブロック名・アイコン表示やバリエーション判定に依存するコードは確認すること。@wordpress/blocks/getActiveBlockVariation|isDefault\s*:/ -
低
すべてのブロックに「非表示」サポート(supports.visibility)が既定で有効になった
ブロックを非表示にでき、metadata.blockVisibility=false のブロックはフロントのマークアップから完全に除去される(資産も dequeue)。
ほぼ全ブロックで既定有効のため、非表示にされると困るブロック(レイアウト必須の要素など)は block_type_metadata フィルターで
supports.visibility を false にすること。parse_blocks() でブロックを解析するコードは非表示属性を考慮すること。block_type_metadata/blockVisibility/ -
低
Icon ブロックは 6.9 では出荷されなかった
ロードマップでは新ブロックとして Accordion・Terms Query・Stretchy Type・Icon が挙げられていたが、Beta 1 の新ブロック一覧と
Field Guide に Icon ブロックはなく、6.9 には含まれない(Stretchy Type はブロックではなく fitText サポートとして出荷)。core/icon -
低
サイトエディタの「シンプル編集モード」は 6.9 の出荷機能に含まれなかった
ロードマップではコンテンツ編集中心の簡易サイト編集モードが予告されていたが、Beta 1 の機能一覧・Field Guide のいずれにも記載がなく、
6.9 で出荷された形跡はない(明示的なドロップ告知はなく、情報源からの推定)。 -
低
テンプレートの有効化/無効化(拡張テンプレート管理)は 6.9 Beta 4 で差し戻され 7.0 へ延期
ロードマップと Beta 1 では「スラッグごとに複数テンプレート、下書き、有効化/無効化、テーマ切り替え時の保持」を予告していたが、
Beta 3 で見つかった不具合により Beta 4 でテンプレート有効化機能が revert され、7.0 に回された。6.9 の最終版には入っていない。
WordPress 6.8 final
情報源(20)
- https://github.com/WordPress/wordpress-develop/compare/6.7.0...a33a49e2e7f7e47656bc835996c692593edeba00 git
- WordPress 6.8 Field Guide field-guide
- Roadmap to 6.8 roadmap
- WP_Query changes in WordPress 6.8 dev-note
- New REST API Filter for Exposing Menus Publicly in WordPress 6.8 dev-note
- Accessibility Improvements in WordPress 6.8 dev-note
- Miscellaneous developer changes in WordPress 6.8 dev-note
- Miscellaneous Block Editor Changes in WordPress 6.8 dev-note
- Updates to user-interface components in WordPress 6.8 dev-note
- Interactivity API best practices in 6.8 dev-note
- New filter should_load_block_assets_on_demand in 6.8 dev-note
- Changes to the .screen-reader-text class in WordPress 6.8 dev-note
- More efficient block type registration in 6.8 dev-note
- Data: A helpful performance warning for developers in the 'useSelect' hook dev-note
- Roster of design tools per block (WordPress 6.8 edition) dev-note
- Internationalization improvements in 6.8 dev-note
- Speculative Loading in 6.8 dev-note
- WordPress 6.8 will use bcrypt for password hashing dev-note
- WordPress 6.8 performance improvements release
- WordPress 6.8 Release Candidate 4 release
-
中
wp_add_editor_classic_theme_stylesが非推奨になった(6.8.0) -
中
action
setted_site_transientが非推奨になったsetted_site_transient→set_site_transient -
中
action
setted_transientが非推奨になったsetted_transient→set_transient -
中
ユーザーパスワードのハッシュが phpass から bcrypt($wp$2y$)に変わった
wp_hash_password() / wp_check_password() が password_hash()/password_verify() ベースの bcrypt(SHA-384 プレハッシュ)になり、新しいハッシュは
$wp$2y$プレフィックスで保存される。既存の$P$ハッシュは有効なままで、次回ログイン時に再ハッシュされる。
$P$プレフィックスを前提にハッシュを直接検査・比較するコードや、wp_hash_password / wp_check_password を上書きしているプラグインは見直すこと。検証は必ず wp_check_password() を経由する。wp_hash_passwordwp_check_passwordwp_password_needs_rehashpassword_needs_rehashwp_hash_password_algorithm/\$P\$|user_pass|function\s+wp_(hash|check)_password\s*\(/wordpress-6-8-will-use-bcrypt-for-password-hashing wordpress-6-8-field-guide #
-
中
Block Hooks が投稿本文と同期パターン(core/block)にも適用されるようになった
これまでテンプレート・テンプレートパーツ・パターン・ナビゲーションに限られていた Block Hooks の自動挿入が、投稿・固定ページの本文と同期パターンにも及ぶようになった。
hooked_block_types フィルター等で広い条件のフックブロックを登録しているプラグインは、意図せず投稿本文にブロックが挿入されないか $context を確認すること。hooked_block_typescore/block/['"]blockHooks['"]|hooked_block_types/ -
中
アプリケーションパスワード・リセットキー等のハッシュが BLAKE2b($generic$)に変わった
アプリケーションパスワード、パスワードリセットキー(user_activation_key)、個人データ要求キー、リカバリーモードキーが phpass から Sodium の BLAKE2b(
$generic$プレフィックス)に移行した。既存ハッシュは期限内なら有効だが自動再ハッシュはされない。
これらのハッシュを直接検証しているコードは新設の wp_verify_fast_hash() を使うよう改めること。wp_fast_hashwp_verify_fast_hashrecovery_keys/user_activation_key|_application_passwords|\$P\$/ -
中
WP_Image_Editor::generate_filename() が空文字のサフィックスをそのまま使うようになった
以前は $suffix が falsy(空文字含む)ならサイズのサフィックス(-600x800 等)を付けていたが、6.8 から空文字は「サフィックスなし」として扱われる。null / false の場合のみ従来どおり寸法サフィックスが付く。
空文字になりうる変数を渡しているコードは null を渡すよう修正すること。WP_Image_Editor::generate_filename/->generate_filename\s*\(/ -
中
render_block_context フィルターで追加したコンテキストが内側のブロックにも一貫して渡るようになった
以前はトップレベルブロックに対して render_block_context で与えたコンテキストだけが子孫に伝播し、内側のブロックに与えた場合は伝播しなかった。6.8 からはどの階層でも子孫ブロックに伝播する。
旧挙動を前提に条件分岐していたコードは、ネストしたブロックで値が上書きされないか確認すること。render_block_context -
中
WP_Query のクエリ変数が並べ替え・型変換されて保持されるようになった
キャッシュヒット率向上のため、WP_Query は配列引数(post_type 配列や author__not_in など)をソート・重複除去・型変換してから保持する。WP_Query::get() や $query_vars の値が渡した配列と一致しなくなる(例: ['post','page'] → ['page','post']、['2','1'] → [1,2])。
posts_where などのフィルター内で配列を === で比較しているコードは array_diff() 等の順序非依存の比較に改めること。WP_Query::getWP_Query/===\s*\$\w+->(get\s*\(|query_vars\[)|->(get\s*\([^)]*\)|query_vars\[[^\]]*\])\s*===/wp_query-changes-in-wordpress-6-8 wordpress-6-8-performance-improvements #
-
中
__unstableIframe の scale="default" の挙動が変わった
@wordpress/block-editor の __unstableIframe コンポーネントで scale プロップの扱いが変わった。自動スケールを期待して scale="default" を指定している場合は scale="auto-scaled" に変更すること。
@wordpress/block-editor/scale\s*=\s*\{?\s*["']default["']/ -
中
Interactivity API で属性値の決定にストア関数を ! 付きで使うと非推奨警告が出るようになった
data-wp-bind 等の値を決めるディレクティブで actions / callbacks を
!演算子と組み合わせると非推奨警告が出る。将来は値決定ディレクティブでのストア関数利用自体が不可になる予定のため、state(derived state)や context に移行すること。@wordpress/interactivity/data-wp-[a-z-]+(--[a-z-]+)?=["']!\s*(actions|callbacks)\./ -
中
サーバーが処理できない画像形式のアップロードがデフォルトで拒否されるようになった
サーバーの画像エディターが対応しない画像形式(例 HEIC など)をアップロードすると、エディターとメディアライブラリでエラーになるようになった。wp_prevent_unsupported_mime_type_uploads で false を返せば従来どおりアップロード可能(ただしサブサイズは生成されない)。
wp_prevent_unsupported_mime_type_uploads -
中
フロントエンドで Speculative Loading(リンク先の prefetch)がデフォルト有効になった
パーマリンク有効かつ未ログイン時、フロントのリンクがクリック開始時点で prefetch(conservative)される。クエリパラメータ付き URL は除外されるが、独自リライトで GET による状態変更(カート追加等)を行う「アクション URL」を持つプラグインは wp_speculation_rules_href_exclude_paths で除外すること。
prerender を有効にするサイトでは分析タグ等のクライアント処理が先行実行されうる。no-prefetch / no-prerender クラスでブロック単位の除外も可能。wp_speculation_rules_href_exclude_pathswp_speculation_rules_configurationwp_load_speculation_rulesWP_Speculation_Rules -
中
Interactivity API で同期イベントアクセスに withSyncEvent() が必要になった(非推奨警告)
イベントに結び付いたストアアクションで event.preventDefault() / stopPropagation() / stopImmediatePropagation() / currentTarget を使う場合、withSyncEvent() で包まないと非推奨警告が出る。将来のリリースでアクションがデフォルト非同期化されると、包んでいないコードは preventDefault が効かなくなるなど壊れる。
@wordpress/interactivity/event\.(preventDefault|stopPropagation|stopImmediatePropagation)\s*\(|event\.currentTarget/interactivity-api-best-practices-in-6-8 wordpress-6-8-performance-improvements #
-
低
__experimentalBorderBoxControl / BorderControl / BoxControl が安定化され旧名は非推奨になった
BorderBoxControl・BorderControl・BoxControl が正式名でインポートできるようになり、__experimental 付きのエクスポートは非推奨になった。正式名に置き換えること。
@wordpress/components/__experimental(BorderBoxControl|BorderControl|BoxControl)\b/ -
低
ブロックエディター設定 __unstableIsPreviewMode が非推奨になり isPreviewMode に安定化された
select( 'core/block-editor' ).getSettings().__unstableIsPreviewMode を参照すると非推奨警告が出る。isPreviewMode に置き換えること。
@wordpress/block-editor/__unstableIsPreviewMode/ -
低
__experimentalLinkControl が LinkControl に安定化され、旧名は非推奨になった
@wordpress/block-editor の __experimentalLinkControl は引き続き動くが非推奨警告が出る。__experimentalLinkControlSearchInput / SearchResults / SearchItem も非推奨。LinkControl に移行すること。
@wordpress/block-editor/__experimentalLinkControl/miscellaneous-block-editor-changes-in-wordpress-6-8 wordpress-6-8-release-candidate-4 #
-
低
関数
_hash_hmacが削除された -
低
ブロックアセットのオンデマンド読み込みが should_load_separate_core_block_assets から分離された
これまで should_load_separate_core_block_assets は「コアブロックCSSの個別読み込み」と「ページ内のブロックのアセットだけを読み込む」の2役を担っていたが、後者は新フィルター should_load_block_assets_on_demand(wp_should_load_block_assets_on_demand())に分離された。後方互換で旧フィルターは両方に効き続ける。
旧フィルターでオンデマンド読み込みを制御しているプラグイン・テーマは新フィルターへの移行を検討すること。ブロックテーマは両方ともデフォルト有効。should_load_separate_core_block_assetswp_should_load_separate_core_block_assetsshould_load_block_assets_on_demand -
低
count_user_posts() の結果がオブジェクトキャッシュされるようになった
count_user_posts() の SQL 結果がキャッシュされるようになった(posts の last_changed で無効化)。投稿を直接 SQL で書き換えるなど、通常の API を経由しない更新をした直後に件数を取得するコードは古い値を得る可能性がある。
count_user_posts -
低
get_calendar() の引数が配列 $args に変わった
get_calendar() は $args 配列(initial / display / post_type)を受け取るようになった。旧形式の ( $initial, $display ) も後方互換で受け付けるが、bool 型の場合のみ解釈されるため 0/1 などの非 bool 値を渡しているコードは意図どおり動かない可能性がある。新フィルター get_calendar_args も追加された。
get_calendarget_calendar_args/get_calendar\s*\(\s*[^)\s]/ -
低
WordPress.org 外のプラグイン・テーマにも翻訳のジャストインタイム読み込みが拡張された
Text Domain / Domain Path ヘッダーを持つプラグイン・テーマは、WordPress.org 非掲載でも load_plugin_textdomain() / load_theme_textdomain() なしで翻訳が自動読み込みされるようになった。
独自の読み込み順や翻訳ファイルの差し替えに依存しているコードは、意図しない翻訳が先に読み込まれないか確認すること。6.8 未満をサポートする間は従来の呼び出しを残す。load_plugin_textdomainload_theme_textdomain -
低
投稿タイプの埋め込み可否が embeddable 引数(デフォルトは public)で決まるようになった
register_post_type() に embeddable 引数が追加され、未指定時は public の値を継承する。oEmbed の可否は新関数 is_post_embeddable() で判定されるため、public でない投稿タイプは埋め込みできなくなる。
非公開投稿タイプの埋め込みに依存している場合は embeddable => true を明示するか、is_post_embeddable フィルターを使うこと。register_post_typeis_post_embeddableis_post_embeddable -
低
wp_mail() が PHPMailer のサブクラス WP_PHPMailer を使うようになった
PHPMailer のエラーメッセージを翻訳するため、PHPMailer を継承した WP_PHPMailer が導入され、phpmailer_init に渡されるインスタンスもこのクラスになった。
グローバル $phpmailer を独自インスタンスに差し替えたり、クラス名を厳密比較しているコードは確認すること。WP_PHPMailerphpmailer_init/\$phpmailer\s*=\s*new|get_class\s*\(\s*\$phpmailer/ -
低
wp_video_shortcode() / wp_audio_shortcode() のブール属性が値なしで出力されるようになった
loop・autoplay・muted などが
loop="1"ではなくloopと出力されるようになった。出力 HTML を正規表現で解析したり、[loop="1"]のような属性セレクタで CSS/JS を当てているコードは修正すること。wp_video_shortcodewp_audio_shortcode/(loop|autoplay|muted)="1"|\[(loop|autoplay|muted)=["']?1/ -
低
ブロック登録の parent が配列でないと警告が出るようになった
ブロック登録 API が parent 設定を配列に正規化し、文字列などを渡すとエディターが警告を表示する。block.json や registerBlockType で parent を文字列指定している場合は配列にすること。
@wordpress/blocks/["']?parent["']?\s*:\s*["']/ -
低
ButtonGroup コンポーネントがソフト非推奨になった
アクセシビリティ上の問題から ButtonGroup は非推奨になった。ToggleGroupControl への移行を推奨。
@wordpress/components/\bButtonGroup\b/ -
低
@wordpress/components の RadioGroup が非推奨になった
RadioGroup を使うと非推奨警告が出る。RadioControl または ToggleGroupControl に移行すること。
@wordpress/components/\bRadioGroup\b/ -
低
管理画面の「新規追加」系ラベルが「Add {Item}」に簡略化された
コア投稿タイプの add_new_item などのラベルが「Add New Post」から「Add Post」のように変更された(翻訳文字列も変わる)。ラベル文字列で画面要素を探す E2E テストや、gettext フィルターで既存文字列を置換しているコードは更新すること。
gettext/Add New (Post|Page|Media|User|Item)/wordpress-6-8-field-guide accessibility-improvements-in-wordpress-6-8 #
-
低
Imagick でのリサイズ画像が元画像のビット深度を保つようになった(HDR 対応)
以前は高ビット深度画像のリサイズ結果を 8bit に落としていたが、6.8 からは元のビット深度(例 12bit)のまま出力される。ファイルサイズや下流処理に影響する場合は image_max_bit_depth フィルターで 8 に制限できる。
image_max_bit_depth -
低
パスワード保護投稿で誤ったパスワード入力時にエラーメッセージが出るようになった
誤ったパスワードを入力した際、パスワードフォームにエラーメッセージが表示されるようになり、the_password_form フィルターに第3引数 $invalid_password が渡されるようになった。フォームを独自に差し替えているテーマは表示を確認すること。
the_password_formget_the_password_form -
低
クラシックテーマでもスタイルブックが使えるようになり、パターンのメニュー位置が変わった
editor-styles をサポートするか theme.json を持つクラシックテーマで、外観メニューにスタイルブックが追加された。これに伴いクラシックテーマのパターン一覧は「外観 > パターン」から「外観 > デザイン > パターン」に移動した。
管理メニューを remove_submenu_page() 等で操作しているプラグインや、メニュー位置を前提とした手順書は確認すること。add_theme_support/add_theme_support\s*\(\s*['"]editor-styles/miscellaneous-developer-changes-in-wordpress-6-8 roadmap-to-6-8 #
-
低
管理画面の title 属性削除・クラシックエディターの「テキスト」タブ改名など DOM/文言が変わった
管理画面の多数の title 属性、the_shortlink() の title、カレンダーウィジェット列見出しの title が削除された。投稿者未設定の一覧では空リンクの代わりに「—」が表示され、クラシックエディターの「Text」タブは「Code」に改名された。
title 属性やタブ文言をセレクタ・E2E テストの手がかりにしているコードは更新すること。the_shortlink -
低
body クラスに wp-theme-* / wp-child-theme-* / wp-singular が追加された
フロントと管理画面の body に有効テーマ名の wp-theme-<name>(子テーマ時は wp-child-theme-<name> も)が付き、単一投稿表示では wp-singular が付くようになった。
同名クラスを独自に付与・スタイリングしているテーマやプラグインは衝突がないか確認すること。body_classadmin_body_class/wp-theme-|wp-child-theme-|wp-singular/ -
低
.screen-reader-text から clip と -webkit-clip-path が削除された
管理画面・バンドルテーマ・ブロックライブラリの .screen-reader-text は clip-path: inset(50%) のみで隠すようになった。通常は影響しないが、.screen-reader-text を再表示するリセット CSS で clip だけを解除している場合は clip-path: none も指定すること。
.screen-reader-text/screen-reader-text[^{]*\{[^}]*clip\s*:/changes-to-the-screen-reader-text-class-in-wordpress-6-8 accessibility-improvements-in-wordpress-6-8 #
-
低
入力系コンポーネントの 36px デフォルトサイズが非推奨になった(__next40pxDefaultSize 未指定で警告)
BorderBoxControl, BorderControl, BoxControl, ComboboxControl, CustomSelectControl, DimensionControl, FontSizePicker, FormTokenField, InputControl, NumberControl, RangeControl, SelectControl, TextControl, ToggleGroupControl, UnitControl などで __next40pxDefaultSize を指定していないと非推奨警告が出る。
各コンポーネントに __next40pxDefaultSize を付けて 40px 高さに移行し、レイアウトを確認すること。@wordpress/components/<(BorderBoxControl|BorderControl|BoxControl|ComboboxControl|CustomSelectControl|DimensionControl|FontSizePicker|FormFileUpload|FormTokenField|InputControl|NumberControl|RangeControl|SelectControl|TextControl|ToggleGroupControl|TreeSelect|UnitControl)\b/ -
低
Modal の閉じるボタンが compact サイズ(32px)に拡大された
Modal の閉じるボタンが small(24px)から compact(32px)になった。headerActions にボタンを追加している場合は size="compact" を指定して揃えること。
@wordpress/components/headerActions/ -
低
SearchControl の onClose プロップが非推奨になった
クリアボタンを「閉じる」ボタンとして使う onClose プロップは非推奨。必要なら別途閉じるボタンを UI に追加すること。
@wordpress/components -
低
useSelect が毎回異なる値を返すと SCRIPT_DEBUG 時に警告が出るようになった
mapSelect 内で map() 等により毎回新しいオブジェクトを返すと、SCRIPT_DEBUG 有効時にコンソール警告が出る。動作は変わらないが不要な再レンダリングの原因なので、必要な値だけを select し、加工は useSelect の外で行うこと。
@wordpress/datadata-a-helpful-performance-warning-for-developers-in-the-useselect-hook #
-
低
PHP の hash 拡張が必須要件になった
hash 拡張が $required_php_extensions に加わり、インストール・アップグレード時にチェックされるようになった。通常の PHP ビルドには含まれるため影響はまれだが、hash を無効化した特殊な環境ではアップグレードが止まる。
-
低
Interactivity API のアクションのデフォルト非同期化は 6.8 では準備段階のみ
6.8 は withSyncEvent() と非推奨警告の導入のみで、ハンドラー間でメインスレッドに譲る非同期化そのものは「次のリリース」に予告された。6.8 時点では挙動は変わっていない。
interactivity-api-best-practices-in-6-8 wordpress-6-8-performance-improvements #
-
低
ブロックテーマで投稿エディターを常に iframe 化する変更は 6.8 リリース前に差し戻された
ブロックテーマでは常に iframe でコンテンツを描画する変更が 6.8 に入ると告知されたが、RC 期間中(2025-04-01)に差し戻された。6.8 では従来どおりの条件で iframe 化される。将来再導入される可能性があるため、editor の iframe 内で動かない CSS/JS は引き続き対応を進めること。
-
低
Gallery ブロックのライトボックスは 6.8 に入らなかった
ロードマップで完了目標とされた Gallery ブロックのライトボックスは、Interactivity API 節が「Not on track」とされ、6.8.0 の core/gallery にも実装されていない。
-
低
Query / Search ブロックのインスタント検索は 6.8 に入らなかった
ロードマップで Interactivity API の目標として挙げられた Query・Search ブロックのインスタント検索は、Interactivity API 節が「Not on track」とされ 6.8 では出荷されていない。
WordPress 6.7 final
情報源(24)
- https://github.com/WordPress/wordpress-develop/compare/6.6.0...262f4b6add2d1503bdd35611764ec58742b10fb9 git
- WordPress 6.7 Field Guide field-guide
- Roadmap to 6.7 roadmap
- Internationalization improvements in 6.7 dev-note
- Block Bindings: Improvements to the Editor Experience in 6.7 dev-note
- Updates to Block Hooks in WordPress 6.7 dev-note
- Developer Notes for Zoom Out in WordPress 6.7 dev-note
- New Plugin Template Registration API in WordPress 6.7 dev-note
- Miscellaneous Block Editor Changes in WordPress 6.7 dev-note
- Auto Sizes for Lazy Loaded Images in WordPress 6.7 dev-note
- Post Editor iframing with meta boxes in WordPress 6.7 dev-note
- Extending the Preview Dropdown Menu in WordPress 6.7 dev-note
- Updates to user-interface components in WordPress 6.7 dev-note
- New block type registration APIs to improve performance in WordPress 6.7 dev-note
- Roster of design tools per block (WordPress 6.7 edition) dev-note
- Updates to the HTML API in 6.7 dev-note
- Subscribe to changes in the Interactivity API state and context on client-side navigation in 6.7 dev-note
- Updates to Script Modules in 6.7 dev-note
- Automatic conversion of HEIC images to JPEG in WordPress 6.7 dev-note
- Getting ready for PHP 8.4: some code changes landing in 6.7 dev-note
- WordPress 6.7 Performance Improvements other
- WordPress 6.7.1 Release Schedule release
- WordPress 6.7.1 RC1 is now available release
- WordPress 6.7 Release Candidate 5 release
-
中
current_user_can_for_blogが非推奨になった(6.7.0) -
中
wp_enqueue_global_styles_custom_cssが非推奨になった(6.7.0) -
中
wp_get_global_styles_custom_cssが非推奨になった(6.7.0) -
中
wp_init_targeted_link_rel_filtersが非推奨になった(6.7.0) -
中
wp_remove_targeted_link_rel_filtersが非推奨になった(6.7.0) -
中
wp_simplepie_autoloadが非推奨になった(6.7.0) -
中
wp_targeted_link_relが非推奨になった(6.7.0) -
中
wp_targeted_link_rel_callbackが非推奨になった(6.7.0) -
中
WP_Interactivity_API::print_client_interactivity_dataが非推奨になった(6.7.0) -
中
WP_Interactivity_API::print_router_loading_and_screen_reader_markupが非推奨になった(6.7.0) -
中
WP_Interactivity_API::register_script_modulesが非推奨になった(6.7.0) -
中
WP_Sitemaps::redirect_sitemapxmlが非推奨になった(6.7.0) -
中
WP_Theme_JSON::get_custom_cssが非推奨になった(6.7.0) -
中
DimensionControl が非推奨になった(7.0 で削除予定)
@wordpress/components の DimensionControl は非推奨となり、WordPress 7.0 で削除予定と告知された。
SelectControl または CustomSelectControl に寸法の options を渡す形に置き換えること。@wordpress/components/\bDimensionControl\b/ -
中
遅延読み込み画像の sizes 属性先頭に auto が付与される
loading="lazy" の画像について、wp_filter_content_tags() と wp_get_attachment_image() が sizes 属性の先頭に auto を付けるようになった。
生成後に loading 属性を書き換えるプラグイン(遅延読み込み・最適化系)は wp_img_tag_add_auto_sizes() で sizes を補正しないと、ブラウザが 100vw とみなして大きすぎる画像を選ぶ。
sizes を前提に CSS 幅を決めていないテーマでは画像が小さく表示される回帰(#62413)があり 6.7.1 で修正された。wp_calculate_image_sizeswp_filter_content_tagswp_get_attachment_imagewp_img_tag_add_auto_sizes/loading\s*=\s*[\x27"]?(lazy|eager)|wp_calculate_image_sizes/auto-sizes-for-lazy-loaded-images-in-wordpress-6-7 wordpress-6-7-1-release-schedule #
-
中
翻訳の読み込みが早すぎると「_load_textdomain_just_in_time が誤って呼ばれた」Notice が出る
after_setup_theme より前に翻訳を読み込むと _doing_it_wrong(_load_textdomain_just_in_time, 6.7.0)が出るようになった。
load_plugin_textdomain() / load_theme_textdomain() も実際の読み込みを JIT に委譲するよう変わった。
プラグイン本体ファイル直下での __() 呼び出し、init 前のクラス生成、$translate を省略した get_plugin_data() が典型的な原因。
翻訳関数・クラス生成は init 以降に遅らせ、get_plugin_data() は第3引数 false を渡すこと。WordPress.org 配布物なら load_*_textdomain() 自体を削除してよい。
なお load_theme_textdomain() で翻訳が適用されない回帰(#62337)は 6.7.1 で修正された。_load_textdomain_just_in_timeload_plugin_textdomainload_theme_textdomainget_plugin_data/(load_(plugin|theme|muplugin)_textdomain|get_plugin_data)\s*\(/i18n-improvements-6-7 wordpress-6-7-1-release-schedule wordpress-6-7-1-rc1-is-now-available #
-
中
wp_trigger_error() に E_USER_ERROR を渡すと WP_Exception を投げるようになった
PHP 8.4 で trigger_error() への E_USER_ERROR が非推奨になったため、wp_trigger_error() は E_USER_ERROR のとき新設の WP_Exception を throw するようになった。
致命的エラーとして停止する点は同じだが、try/catch で捕捉される・カスタムエラーハンドラでは拾えなくなる点が異なる。
wp_trigger_error( ..., E_USER_ERROR ) を使っているコードやテストは例外前提に書き換えること。wp_trigger_errorWP_Exception/wp_trigger_error\s*\([^;]*E_USER_ERROR/getting-ready-for-php-8-4-some-code-changes-landing-in-6-7 #
-
中
filter
plugin_localeが発火しなくなった -
中
filter
theme_localeが発火しなくなった -
中
メタボックスがあっても投稿エディタのキャンバスが iframe 化される
投稿エディタはメタボックスの有無にかかわらず iframe で描画され、メタボックスは分割ビューに表示される。iframe 化を妨げる残りの条件は apiVersion 3 未満のブロックの存在のみ。
メタボックス内で上方向に開くドロップダウン等はコンテナで切り取られる。リッチテキストのフォーマット UI を独自に配置している場合は @wordpress/rich-text の useAnchor を使うこと。
エディタキャンバスに CSS/JS を注入しているプラグインも iframe 前提で見直す必要がある。add_meta_box@wordpress/rich-text/add_meta_box\s*\(|"apiVersion"\s*:\s*[12]\b/ -
低
Interactivity API の初期データ出力が script_module_data フィルタ経由に変わった
Interactivity API のストアデータは script_module_data_@wordpress/interactivity フィルタで出力され、script 要素の ID が wp-interactivity-data から wp-script-module-data-@wordpress/interactivity に変わった。
この JSON を DOM から直接読んでいるコードは更新が必要。関連する WP_Interactivity_API のメソッド非推奨は extracted 側に記録済み。/wp-interactivity-data/ -
低
SimplePie_Authorが非推奨になった(unknown) -
低
SimplePie_Cacheが非推奨になった(unknown) -
低
SimplePie_Cache_Baseが非推奨になった(unknown) -
低
SimplePie_Cache_DBが非推奨になった(unknown) -
低
SimplePie_Cache_Fileが非推奨になった(unknown) -
低
SimplePie_Cache_Memcacheが非推奨になった(unknown) -
低
SimplePie_Cache_Memcachedが非推奨になった(unknown) -
低
SimplePie_Cache_MySQLが非推奨になった(unknown) -
低
SimplePie_Cache_Redisが非推奨になった(unknown) -
低
SimplePie_Captionが非推奨になった(unknown) -
低
SimplePie_Categoryが非推奨になった(unknown) -
低
SimplePie_Content_Type_Snifferが非推奨になった(unknown) -
低
SimplePie_Copyrightが非推奨になった(unknown) -
低
SimplePie_Creditが非推奨になった(unknown) -
低
SimplePie_Enclosureが非推奨になった(unknown) -
低
SimplePie_Exceptionが非推奨になった(unknown) -
低
SimplePie_Fileが非推奨になった(unknown) -
低
SimplePie_HTTP_Parserが非推奨になった(unknown) -
低
SimplePie_IRIが非推奨になった(unknown) -
低
SimplePie_Itemが非推奨になった(unknown) -
低
SimplePie_Locatorが非推奨になった(unknown) -
低
SimplePie_Miscが非推奨になった(unknown) -
低
SimplePie_Net_IPv6が非推奨になった(unknown) -
低
SimplePie_Parse_Dateが非推奨になった(unknown) -
低
SimplePie_Parserが非推奨になった(unknown) -
低
SimplePie_Ratingが非推奨になった(unknown) -
低
SimplePie_Registryが非推奨になった(unknown) -
低
SimplePie_Restrictionが非推奨になった(unknown) -
低
SimplePie_Sanitizeが非推奨になった(unknown) -
低
SimplePie_Sourceが非推奨になった(unknown) -
低
SimplePie_XML_Declaration_Parserが非推奨になった(unknown) -
低
SimplePie_gzdecodeが非推奨になった(unknown) -
低
wp_create_block_style_variation_instance_nameが非推奨になった(6.7.0) -
低
SimplePie::force_cache_fallbackが非推奨になった(unknown) -
低
SimplePie::set_author_classが非推奨になった(unknown) -
低
SimplePie::set_cache_classが非推奨になった(unknown) -
低
SimplePie::set_cache_locationが非推奨になった(unknown) -
低
SimplePie::set_cache_name_functionが非推奨になった(unknown) -
低
SimplePie::set_caption_classが非推奨になった(unknown) -
低
SimplePie::set_category_classが非推奨になった(unknown) -
低
SimplePie::set_content_type_sniffer_classが非推奨になった(unknown) -
低
SimplePie::set_copyright_classが非推奨になった(unknown) -
低
SimplePie::set_credit_classが非推奨になった(unknown) -
低
SimplePie::set_enclosure_classが非推奨になった(unknown) -
低
SimplePie::set_file_classが非推奨になった(unknown) -
低
SimplePie::set_item_classが非推奨になった(unknown) -
低
SimplePie::set_locator_classが非推奨になった(unknown) -
低
SimplePie::set_parser_classが非推奨になった(unknown) -
低
SimplePie::set_rating_classが非推奨になった(unknown) -
低
SimplePie::set_restriction_classが非推奨になった(unknown) -
低
SimplePie::set_sanitize_classが非推奨になった(unknown) -
低
SimplePie::set_source_classが非推奨になった(unknown) -
低
ブロック属性の __experimentalRole が role として安定化された
block.json の属性プロパティ __experimentalRole は role に安定化された(content / local)。
@wordpress/block-editor の __experimentalHasContentRoleAttribute セレクタは非推奨かつ private 化、@wordpress/blocks の __experimentalGetBlockAttributesNamesByRole は getBlockAttributesNamesByRole に安定化された。
これらを使っている箇所を新名称に置き換えること。@wordpress/block-editor@wordpress/blocks/__experimentalRole|__experimentalHasContentRoleAttribute|__experimentalGetBlockAttributesNamesByRole/ -
低
@wordpress/components の実験的 API が安定化され、旧名が非推奨になった
__experimentalNavigator*(→ Navigator / Navigator.Screen 等、ToParentButton と goToParent() は BackButton / goBack() と同じ挙動に)、__experimentalUseNavigator(→ useNavigator)、
__experimentalAlignmentMatrixControl(→ AlignmentMatrixControl)、__experimentalBoxControl(→ BoxControl)、__unstableComposite 系(→ Composite)が非推奨になった。
Button の __experimentalIsFocusable は accessibleWhenDisabled に改名(旧名も動作継続)。安定版の名前へ移行すること。@wordpress/components/__experimentalNavigator\w*|__experimentalUseNavigator|__experimentalAlignmentMatrixControl|__experimentalBoxControl|__unstableComposite\w*|__experimentalIsFocusable/ -
低
クラス
ParagonIE_Sodium_Core_Base64_Commonが削除された -
低
Block Bindings の編集 UI と edit_block_binding 権限が導入された
ブロック設定に Attributes パネルが追加され、サーバー側で register_block_bindings_source() したソースもエディタに自動で登録・表示される。
UI 操作可否は canUpdateBlockBindings 設定(既定は edit_block_binding 権限=投稿タイプ編集/テーマオプション編集)で決まり、block_editor_settings_all で上書きできる。
独自ソースを持つプラグインは、エディタ側で registerBlockBindingsSource() による上書き登録が必要か確認すること。register_block_bindings_sourceblock_editor_settings_allblock-bindings-improvements-to-the-editor-experience-in-6-7 #
-
低
Block Hooks が "multiple": false を尊重し、テンプレートパーツの先頭/末尾子要素にも挿入される
block.json で supports.multiple を false にしたフックブロックは、コンテキスト(テンプレート・パーツ・パターン等)ごとに最大1つしか挿入されなくなった。
また core/template-part への firstChild / lastChild 挿入が動作するようになった。
hooked_block_types フィルタで自前の重複チェックをしている場合は不要になり、宣言済みだが効いていなかった template-part 指定は 6.7 から実際に挿入される。hooked_block_typescore/template-part/"blockHooks"/ -
低
HTML API のクラス名照合がドキュメントモード準拠(標準モードでは大文字小文字を区別)になった
HTML API の has_class() / add_class() / remove_class() がドキュメントモードに従うようになり、標準モード(既定)ではクラス名をバイト単位で照合する。
これまで一致していた FULL-WIDTH と full-width のような大文字小文字違いが一致しなくなる場合がある。
あわせて remove_class() は前置空白も除去し、set_attribute() は更新を拒否した場合に false を返すようになった。戻り値や照合結果に依存するコードを確認すること。WP_HTML_Tag_Processor::has_classWP_HTML_Tag_Processor::add_classWP_HTML_Tag_Processor::remove_classWP_HTML_Tag_Processor::set_attribute -
低
画像エディタ実装の選択結果がオブジェクトキャッシュされる
_wp_image_editor_choose() の結果が image_editor グローバルキャッシュグループに1日保存されるようになった。
wp_image_editors フィルタで独自エディタを追加し、test() や supports_mime_type() の結果が実行時に変わるプラグインでは、古い選択結果が使われ得る。wp_image_editors_wp_image_editor_choose -
低
ログイン画面のロゴ見出しの DOM が変わった
wp-login.php に screen-reader-text の h1 が追加され、ロゴ側の h1 には wp-login-logo クラスと role="presentation" が付いた。
#login h1 a のようなセレクタでロゴを差し替えている CSS が意図通りに当たらない回帰(#62410)が報告され、6.7.1 で修正された。カスタムログインロゴを持つ場合は表示を確認すること。login_enqueue_scripts.wp-login-logo/#login\s+h1|\.login\s+h1/ -
低
下マージン付きスタイルを使うフォーム系コンポーネントで非推奨警告が出る
BaseControl, CheckboxControl, ComboboxControl, DimensionControl, FocalPointPicker, FormTokenField, RangeControl, SearchControl, SelectControl, TextControl, TextareaControl, ToggleControl, ToggleGroupControl, TreeSelect で、
__nextHasNoMarginBottom を指定していない場合にコンソールへ非推奨警告が出るようになった。将来マージンは削除されるため、__nextHasNoMarginBottom={ true } を付けてレイアウトを調整すること。@wordpress/components/<(BaseControl|CheckboxControl|ComboboxControl|DimensionControl|FocalPointPicker|FormTokenField|RangeControl|SearchControl|SelectControl|TextControl|TextareaControl|ToggleControl|ToggleGroupControl|TreeSelect)\b/ -
低
CustomSelectControl が Ariakit で書き直され、トリガーの role が combobox になった
CustomSelectControl が Ariakit ベースに書き直された(downshift 依存を削除)。公開 API に破壊的変更はないが、トリガーボタンの role が button から combobox に変わり、
__experimentalShowSelectedHint と options[].__experimentalHint は接頭辞なしの名前に安定化された。DOM/role に依存する E2E テストや CSS は確認すること。@wordpress/components/CustomSelectControl|__experimentalShowSelectedHint|__experimentalHint/ -
低
@wordpress/compose の useResizeObserver が新 API になり、旧 API は非推奨
useResizeObserver はコールバックを第1引数に取り、ref 用のセッターを返す新 API になった。従来の使い方(戻り値の要素を描画する形)はレガシー扱いで非推奨。
新しい呼び出し形式に移行すること。@wordpress/compose/useResizeObserver\s*\(/ -
低
admin_email 宛のメールが同じメールアドレスのユーザーのロケールで送られる
admin_email 宛にメールを送る際、同じメールアドレスのユーザーが存在すればそのユーザーのロケールで送信されるようになった。
管理者向け通知メールの文面言語を前提にしているプラグイン(件名で判定するフィルタ等)は挙動が変わる可能性がある。admin_email -
低
ブロックごとのグローバルスタイル CSS が transient にキャッシュされる
theme.json 由来のブロック単位スタイル(WP_Theme_JSON::compute_style_properties の結果)が transient にキャッシュされるようになった。
theme.json 関連フィルタの結果をリクエストごとに変えているプラグインでは、出力 CSS が更新されないように見える場合がある。wp_theme_json_data_theme/wp_theme_json_data_(default|blocks|theme|user)/ -
低
edit_posts 権限ユーザーがグローバルスタイルの生データを読めるようになった
edit_posts 権限を持つユーザーに、グローバルスタイルの生データへの読み取りアクセスが許可された。
REST API のグローバルスタイル応答を権限で制御・前提にしているプラグインは確認すること。WP_REST_Global_Styles_Controller -
低
HEIC 画像のアップロードがサーバー側で JPEG に自動変換される
Imagick が HEIC に対応している環境では、HEIC アップロードが自動的に JPEG へ変換される(元ファイルは添付ページからダウンロード可能)。
アップロード後の MIME タイプ・ファイル名を前提にしているプラグインは影響を受ける。無効化するには image_editor_output_format フィルタから image/heic を外す。image_editor_output_formatautomatic-conversion-of-heic-images-to-jpeg-in-wordpress-6-7 wordpress-6-7-release-candidate-5 #
-
低
ブロックインスペクター内コントロールの標準間隔が 24px から 16px に縮小
ブロックインスペクターのコントロール間の標準余白が 16px に変わった。BaseControl ベースのコントロールは自動で追従するが、
独自コントロールや下マージンを上書きしている場合は 16px に合わせて調整すること。 -
低
Media & Text ブロックの「画像で埋める」が background-image ではなく img 要素になった
Media & Text ブロックで「Crop image to fill」有効時も CSS background-image ではなく img 要素(is-image-fill-element クラス)で描画されるようになった。
.wp-block-media-text__media の background-image を前提にしたテーマ CSS や JS は見直すこと。core/media-text.wp-block-media-text__media -
低
contentOnly ロックのブロックは変換・バリエーション切替ができなくなった
templateLock / lock が contentOnly のブロックでは、ブロック変換メニューとバリエーション切替が表示されなくなった(トップレベルではブロックスタイルは選べる)。
contentOnly ロックしたパターンやテンプレートで変換操作を前提にしている場合は見直すこと。/contentOnly/ -
低
Query Loop ブロックの設定配置・既定値が変わり、Posts List バリエーションが削除された
Query Loop の表示件数・オフセット・最大ページ数の設定がツールバーからインスペクターへ移動し、投稿/固定ページ内では Query Type 設定が非表示で posts を既定とする。
テンプレート上では posts per page が継承される。Posts List バリエーションは削除されたため、これに依存するパターンや拡張は確認すること。core/query -
低
Zoom Out モードはメインコンテンツを core/post-content か tagName=main の Group から判定する
新しい Zoom Out モードでは「メインコンテンツ」以外のブロックが編集不可になり、メインは core/post-content、なければ tagName が main の core/group で判定される。
テーマはテンプレートのメイン領域を tagName main の Group で包むこと。また zoom-out エディタモードはキャンバスの縮小と切り離された。core/groupcore/post-content -
低
Gallery ブロックのライトボックスは 6.7 に入らなかった
ロードマップで Interactivity API による Gallery ブロックのライトボックス対応が予告されたが、6.7.0 の gallery ブロックにライトボックス処理は含まれていない。
core/gallery -
低
HTML API の querySelector 相当の機能は 6.7 に入らなかった
ロードマップで HTML API への querySelector() 相当の追加が予告されたが、6.7 の HTML API Dev Note には含まれず出荷されていない。
-
低
プラグインからのテンプレートパーツ登録 API は 6.7 では出荷されなかった
ロードマップではテンプレートとテンプレートパーツの登録 API が予告されたが、出荷された register_block_template() はブロックテンプレートのみ対象でテンプレートパーツは登録できない。
テンプレートパーツは従来どおりフィルタ等で対応する必要がある。roadmap-to-6-7 new-plugin-template-registration-api-in-wordpress-6-7 #
-
低
Query / Search ブロックのインスタント検索は 6.7 に入らなかった
ロードマップで予告された Query・Search ブロックのインスタント検索は、6.7 の Field Guide・Dev Notes に記載がなく出荷されていない。
-
低
タイポグラフィ系ブロックサポートの安定化は 6.7 では完了しなかった
ロードマップでタイポグラフィ系ブロックサポートの _experimental 接頭辞除去が予告されたが、6.7.0 でも __experimentalFontFamily 等の名前のままである。
block.json では引き続き __experimental 付きのキーを使うこと。/__experimentalFontFamily|__experimentalFontWeight|__experimentalLetterSpacing|__experimentalTextTransform/