Le manque de documentation pour la classe WP_Widget me rend fou. Voici ce que j'ai récupéré du codex:
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
}
Quelle est cette variable $instance
? Les docs disent que c'est The settings for the particular instance of the widget
. Mais alors pourquoi n'est-ce pas simplement une autre propriété de $this
. Pourquoi $this->get_field_name('title')
semble-t-il savoir quelque chose au sujet d'un titre et soudainement, lorsque nous voulons ce titre, je dois commencer à entrer dans cette variable instance
. Qu'est-ce que j'oublie ici.
Pouvez-vous m'expliquer où se trouve le $title
, en quoi le $instance
est-il différent de $this
et pourquoi nous utilisons le titre pour obtenir le nom du champ?
Merci beaucoup!
$instance
contient les données stockées pour cette instance de widget sous forme de tableau. Vous pouvez utiliser le même widget plusieurs fois, et chacun obtient des données différentes.
get_field_name()
et get_field_id()
renvoie les attributs name/id pour ce widget. Ils sont uniques pour chaque widget, mais ne dépendent pas des données. C’est pourquoi ils ne doivent rien savoir du $instance
:
function get_field_name($field_name) {
return 'widget-' . $this->id_base . '[' . $this->number . '][' . $field_name . ']';
}