web-dev-qa-db-fra.com

Vous appelez l'ID de widget d'un widget multi-instance depuis l'intérieur du widget?

J'essaie de générer un ID de widget unique dans mes widgets multi-instances. Jusqu'à présent, les éléments suivants n'ont pas fonctionné. Existe-t-il un identifiant unique et comment l'appeler?

Merci.

function widget($args, $instance) {
// outputs the content of the widget
    extract( $args );
    $widget_id = $instance['widget_id'];    
?>
<?php echo $widget_id ; ?>
<?php
}

Merci.

5
agileapricot

Vous pouvez obtenir l'ID d'instance avec echo $this->id; ($this est l'instance de la classe).

La seule fois où vous ne pouvez pas obtenir cet identifiant provient de la fonction form(), juste après que vous ayez simplement supprimé le widget ( ici est la raison pour laquelle)

13
onetrickpony

Pour imprimer l'ID en php:

echo $this->id;

Mais cela affichera également l'identifiant avant qu'il ne soit ajouté à la barre latérale.

Donc, l'id correspondra àwidget-[#]_my_widget-__i__

Une manière complémentaire d'obtenir l'identifiant du widget est en javascript, une fois ajouté:

$(document).on('widget-added', function(event, widget){
                    var widget_id = widget.context.id;

                });
0
MediaFormat