Поддержка Проблемы и решения Ошибка заголовка виджета (нет переменной)

  • Решено jurvrn

    (@jurvrn)


    Выводиться ошибка:

    Notice: Undefined index: title in /home/f0234221/domains/jurvrn.ru/public_html/wp-content/plugins/my-widgets/timedatejava.php on line 51

    Как я понимаю переменная title не определена, хотя ей присваивается строковое значение.
    Код плагина приведен: https://3v4l.org/bAqLU

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Как я понимаю переменная title не определена, хотя ей присваивается строковое значение.

    $title = apply_filters('widget_title', $instance['title']);

    Здесь проблема не в переменной $title, а в элементе $instance['title'], которого в массиве может и не быть.

    Кроме того, в фильтр widget_title нужно передавать не одно значение, а три, иначе какой-нибудь плагин может выдать ошибку, если ожидает получить второе или третье значение, а их нет 🙂

    Попробуйте так, по аналогии со стандартными виджетами:

    
    $title = ! empty( $instance['title'] ) ? $instance['title'] : '';
    $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
    
    Автор jurvrn

    (@jurvrn)

    Sergey Biryukov (@sergeybiryukov)
    спасибо, ошибка пропала, но вместе с ней и задаваемое по умолчанию значение заголовка в строке № 30
    $title = 'Здесь можно указать заголовок виджета';
    обновленный код плагина: https://3v4l.org/VDOCK

    Автор jurvrn

    (@jurvrn)

    P.S. решение также подсмотрел в стандартных виджетах.

Просмотр 3 ответов — с 1 по 3 (всего 3)