WordPress 5.4の準備:テーマとプラグインの開発者が知っておくべき変更
公開: 2020-03-05WordPress 5.4のリリースが迫っているので、プラグインとテーマの開発者が拡張機能のテストを開始し、問題がないことを確認する時が来ました。 今後の機能のための新しいAPIもあります。 昨日、コアチームは5.4の最初のリリース候補をリリースしました。 公式リリースは3月31日に予定されています。
この投稿は、開発者が今後数週間で覚えておく必要のあるいくつかの重要な変更へのリンクを含むクイックガイドとして機能します。 プラグインとテーマを必ずテストしてください。
テーマ開発者

テーマの作成者がテストしたい変更がいくつかあります。 WordPress 5.4には、いくつかの追加のテーマ機能があります。 また、フロントエンドとブロックエディタのテーマデザインを壊す可能性のあるマークアップ関連の変更もいくつかあります。 残念ながら、WordPressの複数のバージョンをサポートしたいテーマ作成者にとって、これらの変更のいくつかは、CSSが少し肥大化することを意味する場合があります。
ソーシャルアイコンとボタンブロック
WordPress 5.4では、ソーシャルアイコンとボタンの2つの新しいブロックが導入されています。 ソーシャルアイコンブロックを使用すると、ユーザーは最大40の異なるソーシャルネットワークのアイコン/リンクを挿入できます。 ボタンブロックを使用すると、ユーザーは複数のボタンブロックをグループ化できます。 カスタムブロックエディタスタイルを展開しているテーマの作成者は、これらの新しいブロックを考慮して、正しく出力されるようにする必要があります。
カスタムグラデーションプリセットを作成する
新しいグラデーションAPIを使用すると、テーマの作成者は、ユーザーがグループブロックまたはボタンブロックのいずれかで使用するカスタムグラデーションプリセットを定義できます。 テーマの作成者は、デフォルトのグラデーションプリセットである目障りを改善するために、いくつかの作業を行う必要があります。 少しの作業で、グラデーションはユーザーが自由に使える便利なツールになります。 テーマの作成者は、グラデーションをサポートしたくない場合は、グラデーションを完全に無効にすることもできます。
ブロックエディタのマークアップとスタイルの変更
特定のエディタークラスを直接ターゲットにしているテーマの作成者は、ブロックエディターのスタイルを確認する必要があります。 editor-プレフィックスを持つ多くのクラスは、 block-editor-プレフィックスを使用するように変更されました。 .edit-post-layout__contentクラスのラッパー要素は完全に削除されました。 いくつかのラッパー要素がブロックとリッチテキストコンポーネントから削除されました。 Coreの組み込みのパディングとブロックの負のマージンがリファクタリングされました。これは、歓迎すべき追加です。 おそらく、テーマの作成者は、フロントエンドに一致する基本的な作業レイアウトを提供するために、複数のネストされたセレクターと戦う必要がなくなります。
これらの変更は、私が見たいくつかのテーマをすでに壊しています。 多くのテーマ作成者がブロックエディタのスタイルを更新する必要がある可能性があります。
テーマレビューチームがより多くのテーマ作成者にカスタムエディタースタイルでテーマを提出するように求めているとき、クラスとマークアップに対するこれらのタイプの変更は自信を高めるものではありません。 テーマ開発者は、負け戦を戦っているように簡単に感じることができます。 ただし、編集者のマークアップをフロントエンドとの1対1の一致に近づけるための作業が進んでいます。 ある時点で、テーマの作成者は、WordPressの複数のバージョンにわたってユーザーをサポートしながら、これらの種類の変更に対処する必要がなくなることを期待できます。 今のところ、彼らはやや厄介な移行段階にあります。
カレンダーのマークアップとクラスの変更
コアチームは、 get_calendar()関数のマークアップを変更しました。これは、カレンダーウィジェットにも影響します。 カレンダー出力に<tfoot>要素がなくなりました。 代わりに、前月と翌月のリンクが<table>要素の下の<nav>要素に移動されました。
カレンダー出力では、複数のIDとクラスも追加または変更されます。
-
.wp-calendar-tableがラッパー要素に追加されました。 -
.wp-calendar-navがナビゲーションラッパー要素に追加されました。 -
.wp-calendar-nav-nextは、翌月のリンクの#nextを置き換えます。 -
.wp-calendar-nav-prevは、前月のリンクの#prevを置き換えます。
これらは重大な変化です。 古いHTMLまたはIDを対象としたカスタムCSSはすべて更新する必要があります。

ブロック開発者

カスタムブロックを作成しているプラグイン開発者のために、WordPress5.4はブロックシステムを操作するためのいくつかの新しいAPIとツールを導入しています。
ブロック足場
開発者は、ブロックプラグインをすばやく作成するための新しいNPMパッケージを利用できます。 npm init @wordpress/block <plugin-name>の単一コマンドで、スクリプトは新しいディレクトリを作成し、ブロックプラグインの構築に必要な適切なPHP、CSS、およびJavaScriptファイルを構築します。 開発者は、デフォルトで最新のJavaScriptツールを使用するか、オプションでES5バージョンの使用を選択できます。
ブロックスキャフォールディングパッケージの目的は、プラグインの作成者がシングルブロックプラグインを作成し、最終的には公式のブロックディレクトリに移動することです。
ブロックコレクションAPI
Block Collections APIは、カテゴリと同様に機能します。 ただし、それらは名前空間に基づいています。 プラグイン開発者がカスタムコレクションを登録すると、コレクションの名前空間を共有するすべてのブロックが、ブロックインサーターのカスタムセクションの下に表示されます。 これは、ブロックを整理するためのよりスマートな方法のようです。 ブロックのライブラリを作成するプラグインに確かに役立ち、ブロックを自動的にグループ化する方法を提供します。
ブロックバリエーションAPI
新しいBlockVariationsAPIを使用すると、ブロック開発者は基本的にバリエーションのあるブロックのコピーを作成できます。 登録された各バリエーションは、ユーザーが選択できるように、ブロックインサーターに個別のブロックとして表示されます。
この機能の良い例は、新しいソーシャルアイコンブロックです。 これは、さまざまなソーシャルネットワーク用の40のバリエーションを持つ単一のブロックです。
その他の開発者関連の変更
プラグインとテーマ開発の両方の領域にまたがる、注目すべき他のいくつかの変更があります。
新しいナビゲーションメニューフック
待って、待って、待った後、開発者はついに、ナビゲーションメニューの管理画面とカスタマイザーにカスタムフィールドを追加するために、頻繁に要求されるフックをいくつか取得しています。 少なくとも1枚のチケットが9年前にさかのぼりますが、これまでにないほど遅くなります。 以前は、開発者はカスタムウォーカークラスを使用して必要なカスタマイズを行う必要がありました。 ただし、一度に使用できるウォーカークラスは1つだけでした。つまり、変更を加えた複数のプラグインは連携しませんでした。
コアチームは、ナビゲーションメニューの管理画面に新しいwp_nav_menu_item_custom_fieldsフックを追加しました。このフックは、個々のメニュー項目の[移動]ボタンの前に表示されます。 管理者と同等にするために、navメニュー項目にはカスタマイザーに新しいwp_nav_menu_item_custom_fields_customize_templateがあります。 これらのフックを使用すると、開発者は、ナビゲーションメニュー項目にカスタムデータを追加するために必要なカスタムフォームフィールドを追加できます。
apply_shortcodes()エイリアス関数
WordPress 5.4では、新しいapply_shortcodes()関数が導入されています。 これは、 do_shortcode()関数のエイリアスです。 新しい関数は、より意味的に正しい関数名を提供します。 一般に、接頭辞do_の関数は、出力またはある種のアクションを期待します。 プレフィックスがapply_の関数は、データが返されることを期待します。
ショートコード対応領域を使用してテーマまたはプラグインを作成している場合は、新しい関数に切り替える必要があります。 do_shortcode()関数は現在非推奨としてマークされていませんが、それが最終的な目標になるはずです。
