WordPress : WP Customizer compare et définit une valeur via javascript
Je travaille sur un thème qui permet aux utilisateurs de choisir parmi un ensemble de palettes de couleurs et j’ai besoin d’ajouter plus de contrôles de couleur afin que l’utilisateur puisse modifier les couleurs d’arrière-plan des sections du site, qui sont contrôlées en fonction de la palette de couleurs. Jusqu’à ce que l’utilisateur définisse une couleur personnalisée, j’ai besoin que les couleurs de ces options soient mises à jour (sans actualisation) en fonction de la palette de couleurs sélectionnée.
J’ai besoin de quelque chose de similaire à la réponse de Weston Ruter à cette question, mais je n’arrive pas à comprendre comment comparer la valeur actuelle et définir la couleur en fonction de celle-ci.
Le code suivant met à jour la couleur sans rafraîchir, mais uniquement sur l’option de la dernière instruction « else », chaque fois que j’essaie de comparer les valeurs, cela ne fonctionne pas.
wp.customize( 'themeb_scheme', 'themeb_footerbg', function( themeb_scheme, themeb_footerbg ) {
themeb_scheme.bind( function( value ) {
if( themeb_scheme == 'light'){
themeb_footerbg.set( '#eaeaea' );
} else if( themeb_scheme == 'dark'){
themeb_footerbg.set( '#323232' );
} else {
themeb_footerbg.set( '#828282' );
}
} );
} );
Je n’ai aucune expérience avec jquery, la personne qui a codé la mise en page ne travaille plus avec nous et on m’a demandé d’apporter ces modifications, donc toute aide serait très appréciée.
Solution n°1 trouvée
Vous liez les modifications à themeb_scheme
via une fonction de rappel anonyme avec le paramètre value
comme nouveau paramètre de themeb_scheme
.
Cela devrait fonctionner :
wp.customize( 'themeb_scheme', 'themeb_footerbg', function( themeb_scheme, themeb_footerbg ) {
themeb_scheme.bind( function( value ) {
if( value == 'light'){
themeb_footerbg.set( '#eaeaea' );
} else if( value == 'dark'){
themeb_footerbg.set( '#323232' );
} else {
themeb_footerbg.set( '#828282' );
}
} );
0 commentaire