WordPress 5.6.1 Maintenance updates Topics

WordPress 5.6.1 Maintenance updates WordPress
WordPress 5.6.1 Maintenance updates
記事内に広告が含まれています。

WordPress 5.6.1

ブロックエディタの20個のバグ修正

Thank you for reading this post, don't forget to subscribe!

ブロックエディタの7つの問題修正

ブロックエディタの、これらのバグはWordPressバージョン5.6に影響 

この記事は5.5.3で書いています。
WordPress 5.6は、
Cocoon フォーラム でも、不具合が報告されていたことから
私のサイトのバージョンアップを止めていました。

5.6.1 Maintenance で不具合が解消されたことから、
先ずは、テスト&趣味サイト5.6.1にアップし、
様子を見ながら、メインサイト5.6.1にアップしようと思っています。


専門用語が多いので、少しだけ補足します。
REST APIRepresentational 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:貼り付く)ということでしょう。(筆者はこの様な事象に会っていないからあくまでも想像ですが)

WordPress5.6.1 Maintenance updates
WordPress5.6.1 Maintenance updates
PR広告

ブロックエディタの20個のバグ修正

WordPress5.6.1 Maintenance updates
WordPress5.6.1 Maintenance updates

横スクロールの操作性の確保と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.php211行目
/wp-admin/authorize-application.php241行目
最初のインスタンスの文書化されたパラメーターが正しくありません。
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の場合:
FirefoxChromeSafariでは期待どおりに機能しました。

※.最初に報告されて以来、コアで修正されたため、「修正済み」として終了します。
バグ
#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.php144行目

アプリのパスワード
[アプリケーションの承認]画面の見出しに正しい翻訳機能を使用します。
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

WordPress5.6.1 Maintenance updates
WordPress5.6.1 Maintenance updates
 
問題# 内容 [機能]
#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 の問題ではなくコアの問題?


WordPress 脆弱性とバージョン推移

コメント