WordPress 5.6.1
ブロックエディタの20個のバグ修正
ブロックエディタの7つの問題修正
ブロックエディタの、これらのバグはWordPressバージョン5.6に影響
この記事は5.5.3で書いています。
WordPress 5.6は、
Cocoon フォーラム でも、不具合が報告されていたことから
私のサイトのバージョンアップを止めていました。
5.6.1 Maintenance で不具合が解消※されたことから、
先ずは、テスト&趣味サイトを5.6.1にアップし、
様子を見ながら、メインサイトも5.6.1にアップしようと思っています。
専門用語が多いので、少しだけ補足します。
REST API(Representational State Transfer は、
Webシステムを外部から利用するためのプログラムの呼び出し規約(プロトコル)。
APIは大雑把に「アプリケーションをプログラミングするためのインターフェース」(Application Programming Interface))
taxonomy(タクソノミー:分類法・分類学)、taxonomy property(タクソノミー プロパティ・分類学特性)
Schema(スキーマ・構造、図式、図表、図解、概要、大要、何かの「構造」を指す用語)
backports:バックポート(新しいバージョンからパーツを取得し、古いバージョンに移植するアクション)
TinyMCE:プラットホームに依存しないウェブベースのJavaScript/HTML WYSIWYGエディター
regression:リグレッション(バージョンアップした際、性能や機能が改悪・低下)。
私は「デグレード」と言っていた。
degrade「デグレード」:直したはずのバグが復活(先祖返り)していたり、
前はなかったはずのバグがあったり、実装したはずの機能がなくなっている状態のこと
プログラムを変更した場合のテスト(検証)では、
「デグレってない?を確認するのが目的のテスト」を意味する「リグレッションテスト」という
今回の5.6.1には「リグレッション対応」が、数か所あります。
(これ(WordPress)は、大人数で同時並行で複数のバージョンの開発・保守をやっているからある面仕方ないことかも)
また、英語のスラングも含まれていて、最初は何のことか分からなかった
not sticky(スティッキーではない:ねばねばしていない)。
クラシックエ・ディターメニューへの対応では、エキサイト英語翻訳などを使うと、
WordPress 5.6:クラシックエ・ディターメニューが粘着しない
WordPress 5.6:クラッシック・エディタメニューは、ねばねばしていない、
などとなり、意味が分からなかったので、スラングを探して、
not stickyは、機能せず、厄介と解釈しました
2021/03/14 追記
調べていたら、「position:sticky; で固定する」という方法があり、
例えば、「画面の途中にあるメニューを、スクロールしても画面上部に固定する」という使い方があるので、こちらの方が使い方に合っているようです。 よってnot stickyは、固定できない(固定しない・貼り付かない–sticky:貼り付く)ということでしょう。(筆者はこの様な事象に会っていないからあくまでも想像ですが)
ブロックエディタの20個のバグ修正
横スクロールの操作性の確保と1項目毎が長いため7分割
1/7:01~03項目
問題# | 内容01~03 | 対Ver. |
---|---|---|
#51056 | パーマリンク(permalinks)のFetch_feed解析により、simplepie preg_match 警告
Fetch_feed parsing of permalinks triggers simplepie preg_match warnings Fetch_feed(外部のRSSフィードを取得して解析する関数) simplepie(RSSを扱うためのライブラリ) preg_match(パターンのマッチング関数) ➡フィード:致命的なエラーを回避するために、複数のヘッダー値をマージします。 SimplePieがHTTPヘッダーを解析するとき、同じヘッダーの複数の値をコンマ区切りの文字列に結合します。 WP_SimplePie_File解析をオーバーライドしますが、 代わりに配列として残していました。 これにより、PHP 8で致命的なエラーが発生します。 これは、コードベースの他の部分が、文字列を予期する関数に配列を渡すことになったためです。 パージング:parsing error;構文解析エラー:解析エラー: |
5.5バグ |
#52327 | PHPのアップデート・アラート、アップデート要求の修正(要求停止)
Alert;アラート(警告や確認、注意を促すメッセージ) Requested updates ;アップデート要求 Requested updates to the PHP Update Alert ➡サイトの健全性: PHPの更新方法に関する言語を更新します。 これは、5.6ブランチへのバックポートです |
バグ |
#51940 | REST APIの用語のタクソノミープロパティのスキーマには、すべてのタクソノミーを含めるべきではありません
たとえば、/wp-json/wp/v2/tagsまたは/wp-json/wp/v2/categoriesなど、 REST APIの用語エンドポイントに対してOPTIONSリクエストを実行する$.schema.properties.taxonomy.enumと、 スキーマのプロパティには、サイト上のすべての分類法の名前のリストが含まれます (REST APIを介して公開されている分類法だけでなく、起動するため)。 これは正しくありません。 The schema for the taxonomy property of a term in the REST API should not include all taxonomies 「REST API」の分類の中の用語に、分類学特性の構造の全ての分類を含ませるべきでない(制限:部分修正) ➡REST API: スキーマにコントローラー自体の分類法のみを含めます。 以前は、すべての分類法が可能な値として誤って公開されていました。 |
4.7バグ |
2/7:04~06項目
問題# | 内容04~06 | 対Ver. |
---|---|---|
#51980 | アプリパスワード:
「新しいアプリケーションパスワードの追加」送信ボタンは、モバイルデバイスの「ユーザープロファイル」ページで非表示 App Passwords: ‘Add New Application Password’ submit button is hidden on mobile devices in ‘User Profile’ page [アプリケーションの承認]画面のフォームの段落を非表示にするCSSルールを修正しましたが、 同様の問題が[ユーザープロファイル]ページに残っています。 [新しいアプリケーションパスワードの追加]ボタンは<p>タグで囲まれているため、 送信ボタンはモバイルでは表示されません。 モバイルユーザーの場合、送信ボタンは(誤って)「プロファイルの更新」ボタンのように見えます。 その結果、アプリケーションパスワードはユーザープロファイルページからモバイルで使用できません。 ➡アプリのパスワード: [新規追加]ボタンがモバイルで非表示になっていないことを確認します。 同様の問題を修正するとき!importantに不要なルールも削除します。 |
5.6バグ |
#51995 | WordPress 5.6のクラッシック・エディタメニューが機能せず、
(メニューが固定されないので厄介) WordPress 5.6: Classic editor menu is not sticky ➡ tinymce-editor-initDOM対応でカスタムjQueryイベントをトリガーします。 そうしないと、TinyMCEが早期に初期化され、 DOMレディにアタッチされたハンドラーがトリガーされない場合があります。 古い[投稿の編集]画面で、エディターメニューが 「スティッキー(機能せず、厄介)」になり、 一部の画面オプションが設定/リセットされる問題を修正しました |
5.6バグ |
#52003 | user.phpの469行に不確定な(未定義)インデックスがある。
user.phpの場所は(/wp-includes/) PHPによるHTTP認証の為の、 定義済みの変数PHP_AUTH_USERと、PHP_AUTH_PWと、PHP_AUTH_TYPEに それぞれユーザー名、パスワード、認証型が代入された状態で呼ばれます。 Undefined index: PHP_AUTH_PW /wp-includes/user.php on line 469 ➡アプリのパスワード: ユーザー名とパスワードが設定されている場合にのみ認証を試みます。 以前は、ユーザー名のみがチェックされていたため、 一部のサーバー設定でPHP警告が発生していました。 たとえば、Shibboleth SSOでは、サーバーはPHP_AUTH_USERフィールドにのみ入力します。 これにより、5.6ブランチに変更が加えられます。 |
5.6バグ |
3/7:07~09項目
問題# | 内容07~09 | 対Ver. |
---|---|---|
#52013 | wp_authorize_application_password_form二重のアクション
/wp-admin/authorize-application.phpの211行目 /wp-admin/authorize-application.phpの241行目 最初のインスタンスの文書化されたパラメーターが正しくありません。 1つ目は[アプリケーションパスワードの承認]の [新しいパスワード]セクションで発生 (最初のアクションはパスワードフォーム内では発生しないため、名前を変更する必要があります)、 2つ目は[アプリケーションパスワードの承認]フォームで 送信ボタンの前に発生します(ユーザーに新しいパスワードを表示すると発生します)。 Duplicate wp_authorize_application_password_form actions ➡アプリのパスワード: アプリのアクション名と署名を正しく承認します。 アプリパスワードが導入されたとき wp_authorize_application_password_formフックと、 wp_application_passwords_approve_app_request_successフックが 誤って複製され、誤って文書化されていました。 このコミットにより、フック名が修正され、 正しいパラメーターが確実に渡されます。 |
5.6バグ |
#52030 | wp_insert_attachment関数を介してプログラムで
メディアライブラリにアップロードされた画像には、作成者のメタデータがありません。 これにより、メディアライブラリで「メディアの編集」オプションを 使用しようとすると、メタボックスで致命的なエラーが発生します。 具体的には:キャッチされないエラー: wp-admin/contains/media.php 3295行の boolでメンバー関数exists()の呼び出し Media metaboxes return fatal error if no author metadata present ➡メディア: メディアライブラリで添付ファイル作成者オブジェクトを インスタンス化するために一貫したメソッドを使用します。 以前は、作成者のいない添付ファイル:exists()は、 false値に対してメソッドを呼び出すために PHPの致命的なエラーを引き起こす可能性がありました。 |
5.6バグ |
#52038 | WooCommerceで、WP 5.6の変更によって引き起こされる可能性のある問題が発生。
Issue in WooCommerce with wp_editor() after update to WP 5.6 wp-adminでは、ユーザーが製品ページを開いて、 リンクをクリックして別のページに移動すると、「行った変更は保存されない可能性があります」というアラートが表示されます。 このエラーはTinyMCE(プラットホームに依存しないウェブベースのJavaScript/HTML WYSIWYGエディター)によって引き起こされたようです。 WP 5.6を実行している場合はこの問題を再現できますが、 以前のバージョンのWPを実行している場合は再現できません。 どのWPコミットがこの問題を引き起こしたかを正確に特定することはできませんでした。 ➡古い「クラシック・エディタ」投稿の編集画面から移動するときに 「Areyousure」プロンプトが不適切にトリガーされる問題を修正しました。変更はありません。 抜粋ポストボックスにTinyMCEのインスタンスがあるときにトリガーされました。 これにより、5.6ブランチに変更が加えられます。 |
バグ |
4/7:10~12項目
問題# | 内容10~12 | 対Ver. |
---|---|---|
#52046 | 古い[投稿の編集]クラシック・エディタ画面の[執筆集中モード]設定は、
ページの再読み込み後にリセットされる場合があります。 The Distraction Free Writing setting on the old Edit Post screen may be reset after page reload Distraction Free Writing (DFW)モード:執筆集中モード ➡TinyMCE-editor-init DOM対応でカスタムjQueryイベントをトリガーします。 そうしないと、TinyMCEが早期に初期化され、 DOMレディにアタッチされたハンドラーがトリガーされない場合があります。 古い[投稿の編集]クラシック・エディタ画面で、 エディターメニューが機能せず、厄介になり、 一部の画面オプションが設定/リセットされる問題を修正しました。 |
5.6バグ |
#52065 | メディアギャラリー:「URLから挿入」に「整列」および「リンク先」フィールドがありません
Media gallery: ‘Align’ and ‘Link To’ fields missing from ‘Insert from URL’ 「整列された状態」および「リンク先」フィールドがフォームの下部に表示されるはずが、 実際の結果では、「代替テキスト」フィールドと「キャプション」フィールドのみが表示される。 ➡メディア: URLから画像を挿入するときに、 メディアモーダル(メディアのモードがある状態) [整列]フィールドと[リンク先]フィールドのテンプレートを修正しました。 |
バグ |
#52066 | アプリケーションパスワードは、パスワードで保護された/wp-adminと組み合わせて使用することはできません
Application Passwords are unusable in combination with password protected /wp-admin 5.6にアップグレードした結果、REST APIユーザーの新しい認証トークンを作成できなくなった ➡アプリのパスワード: 基本認証チェックを再利用可能なフィルター可能な関数に抽出します。 チェックは、基本認証の資格情報は、競合を防ぐために、 検出された場合は、新しいアプリケーションのパスワードを作成防ぐために追加されました。 このチェックはWP-Adminで行われますが、 競合はWebサイトのフロントエンドで基本認証が使用された場合にのみ発生します。 このコミットにより、 基本認証チェックが再利用可能な関数wp_is_site_protected_by_basic_auth()に抽出されます。 この関数は、同じ名前のフィルターを使用して調整できます。 このように、基本認証を使用してWP-Adminを保護するサイトは、 引き続きアプリケーションパスワード機能を使用できます。 将来的には、フィルターの使用を要求する代わりに、 WordPressはループバック要求を行い、 WWW-Authenticateヘッダーをチェックして、この検出をすぐに堅牢にすることができます。 これにより、5.6ブランチに変更が加えられます |
5.6バグ |
5/7:13~15項目
問題# | 内容13~15 | 対Ver. |
---|---|---|
#52075 | クラシックエディタのワードカウントは、保存しない限りFirefoxでリアルタイムに更新されません
Word Count on Classic Editor doesn’t update in real time on Firefox unless saved Firefox83.0を使用するWP5.6で発生し、WP5.5.1では再現できませんでした。 ➡ Firefoxバージョン84.0.2での再テスト。期待どおりに動作します! WP5.6の場合: Firefoxv84.0.1で問題を再現することができました。 Chromeバージョン87.0.4280.88およびSafariバージョン14.0.2で期待どおりに機能しました。 WP5.5.3の場合: Firefox、Chrome、Safariでは期待どおりに機能しました。 ※.最初に報告されて以来、コアで修正されたため、「修正済み」として終了します。 |
バグ |
#52097 | サイトヘルス・ループバックテストは管理者Cookieを送信しません
Site Health Loopback Test doesn’t send admin cookies WordPress 5.6では、REST APIを使用するように非同期サイトヘルス・テストを移動しました。 それらのテストの1つは、に要求を行うループバックテストadmin_url()です。 ユーザーがこの管理リクエストに対して認証されるように、リクエスト内のCookieを送信します。 ただし、REST APIが使用されるようになったため、管理者固有の認証Cookieは含まれていません。 これは事実上、ユーザーが認証されていないことを意味します。 これは、ループバック応答を調べることで実際に確認できます。 ユーザーはwp-login.phpにリダイレクトされています。 これにより、プラグインがロードされないようにするか、 追加の認証ブロックを隠そうとするプラグインで誤検知が発生します。 wp-login.php ➡サイトの状態(サイトヘルス): ループバックテストにはフロントエンドURLを使用します。 非同期サイトヘルス・テストではなく、管理、AjaxをRESTのAPIを使用するように変更されました。 この変更の意図しない副作用はadmin_url()、admin-cookieがREST APIに提供されていないため、 サイトにpingを実行しようとしたループバックテストが認証されなくなったことです。 このコミットsite_urlは、cronが正しく機能することを確認するフロントエンドを 使用するようにループバックテストを調整します。 |
5.6バグ |
#52135 | WP_Site_Health_Auto_Updatesチェック時に 誤検知が発生しているようです。
False positive on `WP_Site_Health_Auto_Updates` これにより、サイトヘルス画面に「バックグラウンド更新が期待どおりに機能していません」という通知が表示されます。 この問題はマルチサイトインストールでのみ発生し、 ネットワークのメインサイトでは発生しません。 ➡サイトの状態(サイトヘルス): メインサイトでのみバージョンチェックを実行します。 wp-includes/update.phpで設定されているバージョンチェックは アクションを設定しますが、メインサイトに対してのみです。 コーディング標準: WP_Site_Health_Auto_Updates::test_wp_version_check_attached() 読みやすさを向上させるために、長い条件を単純化します。 これにより、変更が5.6ブランチにもたらされます。 |
5.6バグ |
6/7:16~18項目
問題# | 内容16~18 | 対Ver. |
---|---|---|
#52196 | 最初の引数が渡されない場合、wp_get_attachment_metadata()は壊れます。
wp_get_attachment_metadata() is broken if no first argument is passed in. wp_get_attachment_metadata()パフォーマンスを向上させるために変更しましたが、 引数なしでそれを呼び出すと、 グローバル(変数)をデフォルト使用する能力をなくす副作用を持っていました($post)。 ➡ドキュメントの変更を元に戻します: wp_get_attachment_metadata() これにより、関数の動作がより正確に記述され、 他の投稿および添付関数のドキュメントとの整合性が高まります。 |
5.6バグ |
#52205 | REST API:
プラグインコントローラー単一プラグインがマルチサイトで致命的なエラーをルーティング REST API: Plugins Controller single plugin route fatal errors on multisite マルチサイトでGET単一のプラグインエンドポイントを試行すると (たとえば、wp/v2/plugins/hello、is_network_only_pluginが定義されていないために) 致命的なエラーが発生します。 これは、削除エンドポイントにも影響します。 収集ルートとインストールルートがどのように構成されているかにより、この問題は発生しません。 ➡REST API: 単一アイテムのプラグインルートを呼び出すときの マルチサイトでの致命的なエラーを修正しました。 is_network_only_plugin及びis_plugin_active機能は、 フロントエンドコンテキストで利用可能でないと具体的にロードされなければなりません。 このコミットにより、5.6ブランチに変更が加えられます。 |
5.5バグ |
#52299 | エクスポートされたユーザーデータは、ディレクトリ・リストで一覧表示できます
(セキュリティ上の脅威・問題) Exported user data can be listed with directory listing WordPress 4.9.6は、 GDPR(EU一般データ保護規則)に準拠して、「個人データのエクスポート」にツールを追加しました。 生成されると、このデータは.zipファイルとして wp-content/uploads/wp-personal-data-exports、または wp-content/uploads/sites/{site_id}/wp-personal-data-exports マルチサイト・インストールに保存されます。 このディレクトリは、index.htmlを使用してディレクトリ・リストから保護されています。 ただし、index.phpがWordPress自体へのエントリポイントであるため、 Webサーバーのインデックスがindex.php以外を指している場合、 WordPressはまったく機能しません。 ディレクトリ・リストを有効にしていて、 index.htmlを指すオプションのディレクトリ・インデックスがない場合は、 そのディレクトリをリストでき、 エクスポートされたユーザーデータを含むzipファイルをブラウザから直接ダウンロードできます。(WP5.6) 攻撃者は、プライバシー上の理由でデータをエクスポートしたユーザーからこれらの情報※にアクセスする可能性があります。 ※.ユーザーの名前、ユーザー名、電子メール、有効期限付きのセッショントークン、アップロードしたファイルへのリンク、IPアドレスなど。 ➡プライバシー: の同様のファイルとの一貫性を保つために、 index.phpディレクトリ内のファイルに改行を追加します。 wp-personal-data-exportsエクスポートされたユーザーデータレポートがディレクトリ・リストで見つからないことを確認 .htmlファイルから.phpファイルに移動することで、 ディレクトリ・リストを防ぎ、WordPressを確実にロードできるようになります。 これにより、5.6ブランチに変更が加えられます。 |
5.6バグ |
7/7:19~20項目
問題# | 内容19~20 | 対Ver. |
---|---|---|
#52351 | 変換(translate)メソッドのエコー機能がありません
missing echo function for translate method authorize-application.phpの144行目 ➡アプリのパスワード: [アプリケーションの承認]画面の見出しに正しい翻訳機能を使用します。 |
5.6バグ |
#52391 | 5.6のグーテンベルクアップデート
Gutenberg Updates for 5.6.1 Gutenberg for WordPress5.6.1のパッケージアップデート ➡エディター: WordPressエディターのnpmパッケージを更新します。 これらは、5.6.1リリースで提供されるバックポートです。 (詳細は、ブロックエディタの7つの問題修正で) |
5.6バグ |
ブロックエディタの7つの問題修正(Gutenberg Updates)
Block editor changes(変更) from GitHub
問題# | 内容 | [機能] |
---|---|---|
#27970 | マイナーリリースへのバックポートなしでブロックパターンを登録するとエディターがクラッシュする問題を修正
Fix editor crash when registering a block pattern without categories カテゴリ無しでブロックパターンを登録する時、エディタがクラッシュするのを修正 |
インサーター |
#27733 | [埋め込みブロック]:
HTMLと再利用可能なサポートをWPマイナーリリースにバックポートに追加: リグレッション(バージョンアップした際、性能や機能が改悪・低下) |
埋め込みブロック
リグレッション |
#27727 | ボックスコントロールコンポーネント入力/ボタンにariaラベルを追加
WPマイナーリリースへのバックポート Add aria labels to box control component inputs/button ボックスコントロールコンポーネントのインプット・ボタンにaria labelsを追加 aria labels(現在の要素にラベル付けする文字列を定義するために使用。 この属性は、一般的なHTML要素で使用できます。) |
UIコンポーネント |
#27627 | エディタースタイルを修正WPマイナーリリースへのバックポート
HTML Block: Fix editor styles HTMLブロックのエディタスタイルを修正(リグレッション) |
HTMLブロック
リグレッション |
#27526 | バックポート_fieldsで使用する値stableKey をWPマイナーリリースに正規化
Core Data: Normalize _fields value for use in stableKey コアデータ(Core Data):stableKeyでの使用のため_fields値を正規化 |
コアデータ |
#26705 | フォントサイズピッカー(Font size picker)が大きなフォントサイズを(correctly)正しく処理する様に修正(Fix)
Fix: Font size picker does not correctly handles big font sizes. WPマイナーリリースへのバックポート |
フォント・サイズ |
#26432 | サイト編集時のインサーターの過剰なスクロールを防止
Edit Site: prevent inserter overscrol サイトの編集: WPマイナーリリースへのバックポートをオーバースクロールするのを防ぐ |
フルサイト編集 |
WordPress5.6.1で新たな問題が発生
※.フォントサイズを入力したら反映されるけど、大きさを選択しても反映されない。
段落ブロックのフォントサイズ設定部分も同様なので、
Editor の問題ではなくコアの問題?
コメント