O que esta variável de instância está fazendo na classe Widgets?

4

A falta de documentação para a classe WP_Widget está me enlouquecendo. Eis o que salvei do códice:

    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
    }

O que é essa variável $instance ? Os documentos dizem que é The settings for the particular instance of the widget . Mas então por que não é apenas outra propriedade de $this . Por que o $this->get_field_name('title') parece saber algo sobre um título e, de repente, quando queremos o maldito título, tenho que começar a entrar nessa variável instance . O que estou perdendo aqui?

Você pode me explicar onde está o $title , que diabos o $instance é diferente do $this e porque estamos usando o título para obter o nome do campo?

Obrigado cargas!

    
por Lucky Luke 18.10.2012 / 22:41

1 resposta

4

$instance contém os dados armazenados para esta instância do widget como uma matriz. Você poderia usar o mesmo widget várias vezes e cada um obteria dados diferentes.

get_field_name() e get_field_id() retorna os atributos name / id para esse widget. Eles são exclusivos para cada widget, mas não dependem dos dados. É por isso que eles não precisam saber nada sobre o $instance :

function get_field_name($field_name) {
    return 'widget-' . $this->id_base . '[' . $this->number . '][' . $field_name . ']';
}
    
por fuxia 18.10.2012 / 22:48

Tags