先日、Wordpressの管理画面からウィジェットの設定画面にアクセスしたところ「○○ブロックはエラーの影響を受けており、正しく機能しない可能性があります。詳細は開発ツールを確認してください。」というエラーが続出しました。
Wordpress5.8にてウィジェットの設定画面にブロックエディターが適用されたのが原因のようです。
ブロックエディターを使っていない僕としては非常に使いにくいうえ、そもそもエラーが出ているのでウィジェットが使い物になりません。
簡単に以前のウィジェット画面に戻すことが出来ましたので記事にします。
プラグインを使用する方法とfunctions.phpを使用する方法をご紹介します。
WordPressのウィジェット画面を元に戻す方法
Wordpressを5.8に更新して数日後、ウィジェットを少し触りたいと思い管理画面からアクセスしたところ真っ赤な画面にビックリしました。
「○○」ブロックはエラーの影響を受けており、正しく機能しない可能性があります。詳細は開発ツールを確認してください。
何事!?と思ってバージョン5.8の更新内容を確認したところ、どうやらウィジェットの管理画面にもブロックエディターが適用されたようです…
Wordpress公式デベロッパーに以下のような説明がありました。
ウィジェットブロックエディター
新しいウィジェットエディタは、ウィジェット領域をアップグレードしてウィジェットと一緒にブロックを使用できるようにするWordPress機能です。おなじみのWordPressブロックエディターを使用して構築された新しいウィジェット管理エクスペリエンスを提供します。
もう皆さん"おなじみ"になっているのかな?…
ブロックエディターは昔からHTMLでやっている人にはアレです。
開発ツールを確認してください?
とりあえずエラー文の通りに確認してみます。
ここでいう開発ツールってブラウザの開発者ツールのことなのでしょうか?
とりあえずChromeのデベロッパーツールを開いてみます。
コアファイルだけでなく、テーマで使用しているJSにもエラーが出ています。
触れないので他の解決策を調べたところWordpress5.8では「widgets_block_editor」というウィジェット画面でブロックエディターを使用する機能そのものが引っ付いているようです。
これを無効化してやれば従来のウィジェット画面が使用できるとのこと。
functions.phpでウィジェット画面を元に戻す
では早速ウィジェット画面を従来の画面に戻しましょう。
まずはプラグインを使用しない方法です。
「widgets_block_editor」のサポートを無効化にすれば良いだけなのでこちらの方法が軽量で個人的にオススメです。
下記のコードをfunctions.phpに追記します。どちらのコードでもOK!
個人的にはコードその2の方がシンプルでオススメです。
コメントアウトや関数名はお好きにどうぞ。
コードその1
//ウィジェットブロックエディター無効化 function disable_widgets_block_editor() { remove_theme_support( 'widgets-block-editor' ); } add_action( 'after_setup_theme', 'disable_widgets_block_editor' );
テーマに「widgets_block_editor」をサポートさせないようにするコードです。
コードその2
またWordpress5.8から新しく実装された「use_widgets_block_editor」フィルターを使ってfalseを返してもOKでした。
//ウィジェットブロックエディター無効化 add_filter( 'use_widgets_block_editor', '__return_false' );
ウィジェットの管理画面にブロックエディターを使用するかどうかを調べるコードなのですが、falseを渡すとブロックエディターを使用しないという風になります。
以上のコードは公式ページのブロックエディタハンドブックにあります。
外部リンク
Wordpress公式がブロックエディターを使用しないウィジェット画面を使用することも考えているため、案外あっさりと戻せます。
5.8から急に変更された内容なので、テーマ側が対応できていない場合が多いです。
そんな時はこの方法でとりあえず従来のウィジェット画面に戻しておくと良いです。
ブロックエディターを使いたくなったらコードを削除してください。
プラグインでウィジェット画面を元に戻す
続いてプラグインを使用してウィジェット画面を従来の画面に戻す方法です。
「Classic Widgets」というプラグインをインストールするだけでOKです。
Classic Widgets は WordPress チームがメンテナンスする公式プラグインです。従来の (「クラシック」) WordPress ウィジェット設定画面を戻します。少なくとも2022年まで、または必要な期間、サポートとメンテナンスが行われます。
有効化すると、プラグインは、従来のウィジェット設定画面を戻し、ウィジェット管理のブロックエディターを無効化します。他の設定はありません。プラグインの有効、無効を切り替えると、ウィジェット設定画面も有効、無効と切り替わります。
Wordpressの公式プラグインです。
説明にもありますが、2022年までは少なくともサポートされるようです。
管理画面左メニュー > プラグイン > 新規追加
に進み検索欄に「Classic Widgets」と入力する。
プラグインが出てくればインストール→有効化するだけでウィジェット画面が元に戻ります。
プラグインの設定画面はありません。
ブロックエディターを使用したい場合は無効化すればOKです。
まとめ
Wordpress5.8で仕様変更されたウィジェット画面を従来の画面に戻す方法でした。
自分でエラーを解決するのは困難な内容です。
テーマやプラグインを使用するユーザー側としては、現状エラーが出てしまっているウィジェットがブロックエディターに対応するまで待つしかなさそうです。
ブロックエディターが苦手な方は少なくとも2022年まではこの方法で延命できます...
GutenbergにはClassic Editorプラグイン。
ウィジェット画面にはClassic Widgetsプラグインかぁ…
今後ブロックエディターしか使えない時代が来るとしたら嫌だなぁ('_')