WordPress как на ладони
wordpress jino

Обновление Wp до 4.3: Ошибка WP_Widget __construct()

Обновился до версии 4.3 и теперь у меня на сайте какая-то неразбериха типо:
Notice: Вызванный метод конструктора класса WP_Widget считается устаревшим с версии 4.3.0! Используйте __construct()
Пожалуйста, помогите разобраться!

P.S. Крик души...

1
Гость 2.1 года назад
  • 1
    Kama4464

    У вас либо в плагинах, либо еще где-то (functions.php) неправильно вызывается функция основного класса WP_Widget - __construct(). С WP 4.3 в классе расширяющий WP_Widget основной класс нужно вызывать так: parent::__construct() а не $this->WP_Widget

    Эта может быть проблема плагина и её должен устранить разработчик. В этом случае, просто отключите WP_DEBUG в wp-config.php.

    Устранении заметки:

    1. Найдите в кодах плагинов или темы такую строку: extends WP_Widget может выглядеть как-то так:
    class ******** extends WP_Widget
    1. Найдите в этом классе вот такой вызов WP_Widget:
    $this->WP_Widget(
    	'widget-' . $this->widget_id ,
    	$this->widget_title,
    	$widget_ops,
    	$control_ops
    );

    и замените его на

    parent::__construct( 
    	'widget-' . $this->widget_id ,
    	$this->widget_title,
    	$widget_ops,
    	$control_ops
    );

    В описании функции register_widget() вы можете посмотреть как нужно регистрировать виджет. Там есть коды правильные...

    Комментировать
  • 0

    Тоже такая проблема возникла, десяток одинаковых ошибок. Причем в указанном файле на указанной строке __construct() уже используется - казалось бы его там нужно заменить. Поэтому присоединяюсь к вопросу.

    Ellisa 2 года назад

    Действительно, проблема в плагинах, которые не совместимы с этой версией Вордпресса.
    Вывод, зря обновился... (((

    Kama 2 года назад

    Неправильный вывод... Обновляться надо, поправят... И это не критично!

    sholex 2 года назад

    Лучше подождать. У меня после обновления сети сайтов wp в упор перестал находить single.php и грузить вместо него index.php
    Откат на прежнюю версию решил проблему

    dalbert 2 года назад

    обновил тему и всё стало нормалёк)))

    Комментировать
  • 0
    Master Mysli cайт: tybog.ru

    "Kama" Во-первых спасибо за созданную тему - она актуальна на мой взгляд. В общем я нашёл те строки на своём сайте (в файле - "widget_post.php" в папке - "inc"), о которых ты писал вначале (parent::__construct() а не $this->WP_Widget) и, соответственно, заменил эту строчку на parent::__construct(). Замечание - "Notice:" пропало сразу, однако теперь не могу удалять и редактировать виджеты вообще, как раньше делал я это с лёгкостью в админке. В чём может быть теперь шляпа ? Версия движка WP у меня 4.4.2

    Спасибо "Kama"

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.