Widget Logic はウィジェットの表示を個別に管理できる優れものプラグインで長らくお世話になっていましたが、WordPressのサイトに深刻なダメージがあり、これを機会に使用をやめます。
概要
Widget Logic 6.0.2 で WordPress のメインコンテンツが消えるというエラーが発生します。6.0.5 で修正されていますが、6.0.2 を更新することができないので手動でコードを修正するか、一旦削除して再度インストールします。
Widget Logic
Widget Logic はウィジェットの表示を自在に操れるWordPressのプラグインです。ウィジェットの下部にテキスト入力欄が現れ、表示の条件を書くだけという、ウィジェット管理のプラグインで最もシンプルかつ高機能なので長年使っていました。しかしエグいエラーが発生して、それがきっかけで信頼が地の底に。使用をやめました。
WordPressのメインコンテンツが空白になるエラー発生
2025年6月初旬、Widget Logic プラグインを使用しているすべてのサイトでメインコンテントの内容が消え空白になってしまうエラーが起きました。
<main class="content"><div id="pk-status-message"></div></main>
main content がすべて消え、”pk-status-message” という犯行声明みたいな div に置き換わっています。最初、悪意ある攻撃か乗っ取りと思って焦りました。
犯人は Widget Logic
犯人はすぐに特定できました。複数サイトが同じ状態なので、無事なサイトと比較したところ Widget Logic が直近に更新されたサイトだけが被害に遭っているし、それ以前にブラウザのインスペクタでエラーを確認すると謎の js エラーで WidgetLogic が名指しされています。乗っ取りではなく、プラグインの不具合でした。
緊急の措置としては、WidgetLogic の使用を停止することで、メインコンテンツが表示されるようになります。
代替 WIdget Options
Widget Logic を不使用にするわけですが、これを使用しているサイトでは当然ウィジェットの表示に問題が出てしまうので先に代替となるプラグインを入れて対処します。仕方ない。Widget Options を入れましょう。Widget Logic と同じことができるので外観-ウィジェット で地道なコピペ作業を施します。

緊急の対処は以上です。WidgetLogicを使用しているすべてのサイトで対処しておきましょう。
何が原因だったのか
緊急の対処が終わったので改めて調べてみると、原因が分かりました。
https://wordpress.org/support/topic/current-version-is-breaking-pages-with-wp-6-8-1/
サポートフォーラムですが、ここで同じ目に遭った人の報告や対処や原因が書かれています。
直接の原因は、プラグイン内でバージョン表記を凡ミスしたことのようです。6.0.2 であるところを 6.02 と記してしまったということで、その直後の 6.0.5 に更新することもできなくなってしまったという(6.2 と判定されるため)
widget_logic.php を開いて 6.02 を 6.0.2 と書き換えてやると、6.0.5 に更新することができてエラーは収まるということです。
書き換えるのが面倒なら、一旦プラグインを削除して再度インストールすると最新バージョンがインストールされます。
凡ミスは仕方ないことですが、この件で発覚したのは WidgetLogic プラグインのふざけた仕様そのものでした。
Widget Logic のふざけた仕様
プラグインページの概要に書かれていることなので、読みもせず勝手に信頼していたこちらが悪いのですが、Widget Logic はページを読み込む度に外部ドメインにホストされているjsファイルを呼び出しています。
Interaction with External Services
Widget Logic uses the external service to obtain up-to-date information about the results of football matches. widgetlogic.org is a source of sports information, that provides a wide range of information about football, including various leagues, tournaments, and championships from around the world.
Widget Logic は、外部サービスを使用して、サッカーの試合の最新情報を取得します。widgetlogic.org は 、世界中のさまざまなリーグ、トーナメント、選手権など、サッカーに関する幅広い情報を提供するスポーツ情報ソースです。
https://wordpress.org/plugins/widget-logic/
えっ。外部からサッカーの試合結果を取得??何それ。WidgetLogicって、サッカー情報の取得がメインの目的だったの?
エラーによりメインコンテンツが消え謎の #pk-status-message に置き換わってしまいましたが、このpkってサッカー用語のPKだったのか。何この仕様。まじか。
長年使っててぜんぜん知りませんでした。
これが見過ごせないのは、プラグインが勝手にどこかのドメインにあるjavascriptを実行し、そのスクリプトがサイト内のメインコンテンツを簡単に消滅させることができると証明したことです。
メインコンテンツを消して#pk-status-message に置き換えることができるんだから、どんな内容にだって置き換えることが可能じゃないですか? 恐ろしすぎますね。
即刻削除します。