WordPress : WordPress : Appliquer un filtre/hook à un widget de barre latérale particulier ?

Publié par Jean-Michel le

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');

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *