Задать вопрос
@jurvrn

В чем ошибка отображения названия виджета Wordpress по умолчанию?

В названии виджета при его вставке отображается ошибка "Notice: Undefined index: title in /home/*****/vkalendar_php.php on line 42".
Линия 42 это: $title = apply_filters('widget_title', $instance['title']);
Хотя указано имя виджета по умолчанию как "Укажите заголовок виджета".
Основной код для формирования виджета
class my_widget_plugin_vk_php extends WP_Widget
{
    function __construct()
    {
        parent::__construct(
            'my-widget-plugin-vk-php',
            'Календарь по годам (виджет) на php',
            array('description' => 'Выводит таблицу календаря на php (виджет)',)
        );
    }

    public function form($instance)
    {
        if (isset($instance['title'])) {
            $title = $instance['title'];
        } else {
            $title = 'Укажите заголовок виджета';
        }
        ?>
        <p>
            <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label>
            <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>"
                   name="<?php echo $this->get_field_name('title'); ?>" type="text"
                   value="<?php echo esc_attr($title); ?>"/>
        </p>
        <?php
    }

    public function widget($args, $instance)
    {
        $title = apply_filters('widget_title', $instance['title']); //ЗДЕСЬ 42 СТРОКА С ОШИБКОЙ
        echo $args['before_widget'];
        if (!empty($title))
            echo $args['before_title'] . $title . $args['after_title'];

echo <<<HTML
............
HTML;
      echo $args['after_widget'];
    }

    public function update($new_instance, $old_instance)
    {
        $instance = array();
        $instance['title'] = (!empty($new_instance['title'])) ? strip_tags($new_instance['title']) : '';
        return $instance;
    }
}

function my_widget_plugin_vk_load_php() {
    register_widget('my_widget_plugin_vk_php');
}

add_action('widgets_init', 'my_widget_plugin_vk_load_php');
  • Вопрос задан
  • 58 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Thes
Проверил, ошибки такой нет.
И да, используйте проще проверку:
$title = isset( $instance['title'] ) ? $instance['title'] : 'Укажите заголовок виджета';
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы