WordPress : Est-il possible d’obtenir un paramètre de personnalisation de thème à partir de wp.customize en utilisant jquery ?

Publié par Jean-Michel le

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 ?

Lire également:  Wordpress : Existe-t-il un moyen de protéger par mot de passe une catégorie WordPress particulière ?

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.

Lire également:  Wordpress : Comment désactiver le titre et la description du site lorsque l'en-têtepersonnalisé est téléchargé sur le personnalisateur ?

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
{
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 *