¿Es posible obtener una configuración de personalizador de tema desde wp.customize usando jquery?

2

Me pregunto si es posible interoperar directamente con la API wp.customize para obtener el valor de una configuración de personalizador de tema. La forma en que lo estoy haciendo ahora es usar ajax para obtener una respuesta de una función php. Parece que tengo muchos problemas con él.

Sé que puede enlazar con los controles del personalizador de temas usando jquery con la wi.customize api, aunque me pregunto si puedo acceder directamente a una configuración desde jquery?

EDITAR: Más información

Sé que puedes interactuar con controles directamente a través de la API de esta manera:

/** Site title and description. */
wp.customize( 'blogname', function( value ) {
    value.bind( function( to ) {
        $( '.site-title a' ).html( to );
    } );
} );

Me pregunto si es posible usar la misma API para acceder directamente a los valores de configuración del tema, usando solo jQuery?

Si no, creo que no sería difícil y sería beneficioso extender el api wp.customize (y tal vez todas las demás funciones de wp) para hacer exactamente lo que estoy haciendo manualmente con ajax y php, por lo que De esta manera, los usuarios solo podrían usar jquery para interactuar con las funciones wp y hacer que wordpress haga el trabajo sucio detrás de la escena. Esta puede ser una buena característica para una versión posterior de WP.

    
pregunta user1632018 23.12.2013 - 06:54

1 respuesta

9

No está seguro de lo que intenta lograr, pero puede obtener un valor por clave utilizando el objeto wp.customize:

wp.customize.value('show_on_front')();
wp.customize.value('blogname')();
....

lo siento, no jQuery aquí, solo javascript, y sí, los extras () son intencionales.

Editar: descripción completa de todas las configuraciones:

wp.customize._value;
console.log(wp.customize._value);

Editar II:

enfoque diferente:

a) buscar todas las configuraciones disponibles usando

console.log(wp.customize._value);

b) uno no puede acceder al valor directamente, por lo que

wp.customize._value.blogname

no funcionará. Pero, si lo hace una función, debería funcionar:

wp.customize._value.blogname();

No creo que esté destinado a ser usado de esta manera (si hay alguna intención de uso) pero funciona para mí. Acabo de inspeccionar el objeto wp.customize y no busqué cómo WP construye este objeto _valor. Es una buena idea probar si una configuración está disponible y si es una función, y finalmente puede usar jQuery;)

if ( jQuery.isFunction(wp.customize._value.blogname) ) {
// do stuff
}

o como nuestros padres lo hubieran hecho;)

if(typeof wp.customize._value.blogname === 'function')
    //do stuff
{
    
respondido por el ungestaltbar 28.12.2013 - 23:19

Lea otras preguntas en las etiquetas