Последнее обновлене - 15 января 2023 в 15:21
Пару дней назад, на одном из сайтов, включив режим отладки, я получил вот такое сообщение: «Deprecated: Вызванный метод конструктора класса WP_Widget в zerif_testimonial_widget считается устаревшим с версии 4.3.0! Используйте __construct(). in /var/www/u1234094/data/domen/wp-includes/functions.php on line 4870».
Я нисколько не удивился тому, что вылезла эта ошибка. Ведь тема на сайте не обновлялась со дня её установки. И это было ещё до выхода версии 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 встречается в нём несколько раз. Вот, например, ещё.
Несколько кликов мышкой, и проблемы нет.
Теперь, в режиме отладки какие бы то ни было ошибки на сайте отсутствуют.
Сегодня валидатор показал: метод конструктора класса WP_Widget устарел. Исправил, спасибо.
Пожалуйста, рад что всё получилось.