WordPress : WordPress : Appliquer un filtre/hook à un widget de barre latérale particulier ?
Je développe un thème qui a plus de 5 barres latérales différentes et je souhaite appliquer une fonction à l’une d’entre elles en particulier à des fins de style. Fondamentalement, la fonction modifiera ses paramètres en utilisant un compteur pour afficher des valeurs aléatoires entre chacun des widgets. Je suis venu avec ça:
function widget_params( $params ) {
// ...
}
add_filter( 'dynamic_sidebar_params', 'widget_params' );
Mais cependant, il fonctionnera pour chaque barre latérale différente. Existe-t-il un moyen de le faire fonctionner uniquement sur une barre latérale particulière? Ou bien, existe-t-il un moyen d’obtenir l’identifiant de la barre latérale du widget actuel à l’intérieur de cette fonction ?
J’espère que tout cela a du sens.
Merci d’avance!
Solution n°1 trouvée
Je vous recommande de créer un crochet personnalisé et de le placer dans le modèle de barre latérale approprié. Voir do_action pour plus d’informations. Utilisez la ligne suivante dans le modèle de barre latérale :
<?php do_action('custom_sidebar_action', 9999); //Replace X with the sidebar ID parameter you want to pass to the function. ?>
Ensuite, dans vos fonctions, modifiez votre code pour qu’il ressemble à ce qui suit (juste le codage à partir de la mémoire, cela peut donc nécessiter quelques ajustements) :
function my_widget_function( $sidebar_id ) {
// ...
}
add_action('custom_sidebar_action', 'my_widget_function', 10, 1);
Avec cette méthode, je suppose que vous pourriez vous en sortir sans passer l’ID de la barre latérale, donc la fonction de nettoyage ressemblerait à ceci :
<?php do_action('custom_sidebar_action'); ?>
Alors:
function my_widget_function() {
// ...
}
add_action('custom_sidebar_action', 'my_widget_function');
0 commentaire