Je crée un widget personnalisé et je souhaite renvoyer un ID d'élément différent. L'ID serait quelque chose comme, instafeed-sidebar
et instafeed-footer
. Cela dépend où le widget a été ajouté.
Enregistrer les barres latérales:
register_sidebar( array(
'name' => esc_html__( 'Post Sidebar', 'nubia' ),
'id' => 'post-sidebar',
'description' => esc_html__( '', 'nubia' ),
'before_widget' => '<section id="%1$s" class="c-widget c-widget--sidebar %2$s">',
'after_widget' => '</section>',
'before_title' => '<h5 class="c-widget--sidebar__title">',
'after_title' => '</h5>',
) );
register_sidebar( array(
'name' => esc_html__( 'Footer First', 'nubia' ),
'id' => 'footer-first',
'description' => esc_html__( '', 'nubia' ),
'before_widget' => '<section id="%1$s" class="c-widget c-widget--footer %2$s">',
'after_widget' => '</section>',
'before_title' => '<h5 class="c-widget--footer__title">',
'after_title' => '</h5>',
) );
Code du widget:
public function widget( $args, $instance ) {
extract($args);
// ...
<div id='instafeed' class='c-widget-instagram'></div>
<?php
echo $after_widget;
}
Je ne souhaite pas utiliser l'identifiant dynamique du widget, mais plutôt un identifiant que je choisis.
Donc, si le widget ajouté à la barre latérale enregistrée, l'élément serait:
<div id='instafeed-sidebar' class='c-widget-instagram'></div>
Si le widget était ajouté au pied de page, l'élément serait:
<div id='instafeed-footer' class='c-widget-instagram'></div>
Merci,
Résolu en suivant les conseils de @mmm. Utiliser $args["id"]
a fait l'affaire.
Utiliser $args["id"]
retournera ce qui suit:
post-sidebar
footer-first
Avec un peu de changement, mon code final est:
public function widget( $args, $instance ) {
extract($args);
// ...
<div id='instafeed-<?php echo explode("-", $args["id"])[0] ;?>' class='c-widget-instagram'></div>
<?php
echo $after_widget;
}
Le résultat est:
<div id='instafeed-post' class='c-widget-instagram'></div>
<div id='instafeed-footer' class='c-widget-instagram'></div>
Merci