保留していた PHP8.2 へのアップデート ですが、「Uncaught ArgumentCountError」が発生する原因と言うか修正方法が判明したので、アップデートしてみました。PHPのバージョンは現時点で最新の 8.3.21 です。
前回の 「/******/wp-includes/class-wp-widget-factory.php」の修正では、原因となっている widget のプラグインはそのままに暫定対処の形で、Wordpress がバージョンアップすると修正したファイルも書き戻されてしまうので、根本的な解決にはならず。
そこで、問題となっているプラグインそのものを修正です。
エラーメッセージをよく見ると、問題が発生している widget のプラグインがわかるのでプラグインのソースを開いて widget のクラスのコンストラクタの記述を修正するだけ
修正前
class myWidget extends WP_Widget {
function myWidget() {
parent::__construct(false, $name = 'myWidget',array("description"=>"myWidget"));
}
:
}
修正後
class myWidget extends WP_Widget {
function __construct() {
parent::__construct(false, $name = 'myWidget',array("description"=>"myWidget"));
}
:
}
function myWidget() の記述を function __construct() に書き換えれば OK
あと、add_action() で create_function を使っている場合は、合わせて無名関数に書き直す必要ありです。






A jaka wtyczka powodowała błąd. Ja mam na stronie sp.luzino.pl to samo i nie mogę znaleźć widgetu który ten bład powoduje
Czy w dzienniku błędów PHP znajdują się informacje na temat wizyty, która spowodowała problem?
To są błędy z logów serwera:
To jest ta część, która powoduje problem.
Dziękuję za odpowiedź. A możesz mi podpowiedzieć jak to naprawić. Bo już od dłuższego czasu próbuję różnych rzeczy i nie mam już pomysłu. Byłbym wdzięczny za pomoc.
Grzegorz
Postępuj zgodnie z instrukcjami w artykule, aby otworzyć kod źródłowy wtyczki i zmodyfikować konstruktor klasy widżetu.
Przykład
Przed zmianą
Po zmianie
Funkcja create_function również powoduje błąd. Można tego uniknąć, przepisując ją jako funkcję anonimową.
Zmień to na następujący kod: