
Последнее обновление - 27 декабря 2020 в 21:22
Пару дней назад, на одном из сайтов, включив режим отладки, я получил вот такое сообщение: «Deprecated: Вызванный метод конструктора класса WP_Widget в zerif_testimonial_widget считается устаревшим с версии 4.3.0! Используйте __construct(). in /var/www/u1234094/data/domen/wp-includes/functions.php on line 4870».
define('WP_DEBUG', false);
на
define('WP_DEBUG', true);
Я нисколько не удивился тому, что вылезла эта ошибка. Ведь тема на сайте не обновлялась со дня её установки. И это было ещё до выхода версии 4.3.0 WordPress.
Вордпресс подсказывает, что ошибка содержится в файле темы functions.php, с указанием конкретной строки. Всё, что нам нужно сделать, это заменить устаревший вызов конструктора с $this->WP_Widget на parent::__construct.
Я открыл на редактирование файл functions.php и, ориентируясь на вышеуказанную строку — line 4870, обнаружил объявленную функцию, которая выглядела следующим образом:
class zerif_ourfocus extends WP_Widget { function zerif_ourfocus() { $widget_ops = array('classname' => 'ctUp-ads'); $this->WP_Widget('ctUp-ads-widget', 'Zerif - Our focus widget', $widget_ops); }}
Чтобы устранить вышеуказанную ошибку, я привёл функцию к следующему виду:
class zerif_ourfocus extends WP_Widget { function __construct() { $widget_ops = array('classname' => 'ctUp-ads'); parent::__construct('ctUp-ads-widget', 'Zerif - Our focus widget', $widget_ops); }}
Пробежавшись по файлу functions.php, обнаружил, что класс WP_Widget встречается в нём несколько раз. Вот, например, ещё.
Несколько кликов мышкой, и проблемы нет.
Теперь, в режиме отладки какие бы то ни было ошибки на сайте отсутствуют.