Intereting Posts

Что такое переменная этого экземпляра в классе Widgets

Отсутствие документации для класса WP_Widget сводит меня с ума. Вот что я избавил от кода:

public function form($instance){ ?> <label for="<?php echo $this->get_field_id('title'); ?>">Title: <input type="text" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo $instance['title']; ?>" id="<?php echo $this->get_field_id('title'); ?>" /> </label> <?php } 

Что это $instance переменная $instance ? Документы говорят, что это The settings for the particular instance of the widget . Но тогда почему это не просто другое свойство $this . Почему $this->get_field_name('title') похоже, что-то знает о названии, и вдруг, когда мы хотим получить проклятый заголовок, я должен начать входить в эту переменную instance . Что мне здесь не хватает.

Можете ли вы объяснить мне, где хранится $title , какой черт этот $instance отличается от $this и почему мы используем заголовок для получения имени поля?

Благодаря нагрузкам!

Solutions Collecting From Web of "Что такое переменная этого экземпляра в классе Widgets"

$instance хранит данные, хранящиеся для этого экземпляра виджета, в виде массива. Вы можете использовать один и тот же виджет несколько раз, и каждый из них получит разные данные.

get_field_name() и get_field_id() возвращает атрибуты name / id для этого виджета. Они уникальны для каждого виджета, но не зависят от данных. Вот почему они не должны ничего знать о $instance :

 function get_field_name($field_name) { return 'widget-' . $this->id_base . '[' . $this->number . '][' . $field_name . ']'; }