WordPress : Est-il possible d’obtenir un paramètre de personnalisation de thème à partir de wp.customize en utilisant jquery ?
Je me demande s’il est possible d’interagir directement avec l’API wp.customize pour obtenir la valeur d’un paramètre de personnalisation de thème. La façon dont je le fais maintenant utilise ajax pour obtenir une réponse d’une fonction php. J’ai l’impression d’avoir beaucoup de problèmes avec.
Je sais que vous pouvez vous lier aux contrôles de personnalisation de thème en utilisant jquery avec l’API wp.customize, bien que je me demande si je peux accéder directement à un paramètre de jquery ?
ÉDIT : Plus d’informations
Je sais que vous pouvez interagir avec les contrôles directement via l’API comme ceci :
/** Site title and description. */
wp.customize( 'blogname', function( value ) {
value.bind( function( to ) {
$( '.site-title a' ).html( to );
} );
} );
Je me demande s’il est possible d’utiliser la même API pour accéder directement aux valeurs de paramètre de thème, en utilisant uniquement jquery ?
Sinon, je pense que ce ne serait pas difficile et serait bénéfique d’étendre l’api wp.customize (et peut-être toutes les autres fonctions wp d’ailleurs) pour faire exactement ce que je fais manuellement avec ajax et php, donc de cette façon ce serait être possible pour les utilisateurs d’utiliser uniquement jquery eux-mêmes pour interagir avec les fonctions wp et laisser wordpress faire le sale boulot dans les coulisses. Cela peut être une bonne fonctionnalité pour une version ultérieure de WP.
Solution n°1 trouvée
Vous ne savez pas ce que vous essayez d’accomplir, mais vous pouvez obtenir une valeur par clé en utilisant l’objet wp.customize :
wp.customize.value('show_on_front')();
wp.customize.value('blogname')();
....
désolé pas de jQuery ici, juste du javascript, et oui, les extra () sont intentionnels.
Edit : Aperçu complet de tous les paramètres :
wp.customize._value;
console.log(wp.customize._value);
Édition II :
une approche différente:
a) rechercher tous les paramètres disponibles en utilisant
console.log(wp.customize._value);
b) on ne peut pas accéder directement à la valeur, donc
wp.customize._value.blogname
ne fonctionnera pas. Mais, si vous en faites un appel de fonction, cela devrait fonctionner :
wp.customize._value.blogname();
Je ne pense pas qu’il soit destiné à être utilisé de cette façon (s’il y a une intention d’utilisation du tout) mais cela fonctionne pour moi. Je viens d’inspecter l’objet wp.customize et je n’ai pas cherché comment WP construit cet objet _value. C’est une bonne idée de tester si un paramètre est disponible et si c’est une fonction, et enfin vous pouvez utiliser jQuery 😉
if ( jQuery.isFunction(wp.customize._value.blogname) ) {
// do stuff
}
ou comme nos parents l’auraient fait 😉
if(typeof wp.customize._value.blogname === 'function')
//do stuff
{
0 commentaire