Proceso de guardado del Personalizador de disparo solo con Javascript

4

Estoy trabajando en un tema personalizado que utiliza la API de personalización de WordPress para permitir que el usuario juegue con partes del contenido de su sitio web, básicamente la página principal que puede modificar agregando / eliminando bloques personalizados, como las últimas publicaciones. niños de la página, etc. La estructura de los negros se recopila y rellena con una entrada personalizada.

Todo funciona bien, excepto para guardar, el Personalizador parece tener algo de seguridad que me impide guardar el valor de entrada: para guardarlo, necesito activar manualmente un evento de 'pulsación de tecla' de Javascript seleccionando la entrada y presionando llave. Si no lo hago, el botón de enviar permanece deshabilitado.

Navegando a través de /wp-admin/js/customize-controls.js puedo activar el botón de envío:

wp.customize.trigger('change')

Pero aunque el guardado está desbloqueado, no tiene ningún efecto: el valor de entrada no se envía a admin_ajax.php y mis datos no se guardan.

¿Alguna idea de cómo podría forzar el desencadenante en la API de Javascript para guardar mis datos? No pude encontrar un documento detallado en la API de WP JS, lo que también podría ser útil si me lo perdí en alguna parte.

    
pregunta Askelon 18.07.2013 - 19:43

1 respuesta

3

En lugar de usar jQuery para actualizar el valor de la entrada personalizada, use la función wp.customize object set() (que se encuentra en customize-base.js ):

wp.customize( key, function ( obj ) {
    obj.set( newValue );
} );

Donde key es la configuración, y newValue es el valor actualizado.

También, vale la pena destacar que, en la clase que extiende WP_Customize_Control , asegúrese de usar $this->get_link() para colocar el atributo de datos data-customize-setting-link en la entrada personalizada (se encuentra en class-wp-personaliza-control.php ).

    
respondido por el Matthew 10.04.2014 - 00:53

Lea otras preguntas en las etiquetas