Me pregunto si es posible extender los métodos del api
objeto anónimo wp-admin/js/customize-control.js
. Necesito sobrescribir uno de estos métodos con mi propia lógica personalizada, pero sospecho que no es posible ya que está envuelto en una expresión de función invocada de inmediato:
/* globals _wpCustomizeHeader, _wpMediaViewsL10n */
(function( exports, $ ){
// code
})( wp, jQuery );
Por lo que puedo ver, no puedo extender el prototipo desde el objeto de la ventana porque se ejecuta de forma anónima y no está disponible window.wp.customize
. ¿Alguna idea de si tal cosa es posible? Incluso se menciona la anulación de esto en la documentación / descripción de los métodos .toggle (): https://github.com/WordPress/WordPress/blob/master/wp-admin/js/customize-controls.js#L110 , pero yo No estoy seguro de si quieren decir simplemente bifurcando todo el archivo JS, quitando la versión de WP y colocando la suya propia o si significan algo diferente.
Tenga en cuenta que parece que debería ser posible con, wp.customize.{method}.extend({ foo: // replace method foo here })
pero eso solo se aplica a las clases / objetos de base pública, no a las dewp-admin/js/customize-control.js
api
es anónimo, es solo un sinónimo dewp.customize
(ver línea 3) que es accesible globalmente. Sin embargo, parece que el Modelo de otro objeto utilizado para los controles llama a laready
función, porinitialize
lo que es posible que no tenga la oportunidad (es decir, siempre sea demasiado tarde) de sobrescribir los métodos: ¿qué está tratando de extender?wp.customize
y agrego funciones a este objeto. vea aquí un ejemplo de fuente: github.com/bueltge/Documentation/blob/master/js/…Respuestas:
Mejoraré mi pequeño comentario sobre su pregunta. Pero de nuevo la pista; No soy un experto en JS. La siguiente fuente, sugerencias, solo se usó para jugar con el Personalizador para diferentes comprobaciones, ejemplos, como mi sandbox .
wp.customize
La comprensión de la interfaz del personalizador de temas de WP se centra en comprender el objeto wp.customize javascript. El
wp.customize
objeto es importante y debe configurarlo al inicio.Ejemplo en vivo
El siguiente pequeño ejemplo demuestra esto. Al principio configuré la var
api
con el objeto del personalizador. Después de esto, configuré mis campos personalizados enapi
y los realicé con una pequeña fuente jQuery para actualizar el resultado para la vista previa en vivo.Configuraciones y controles
Los objetos de control se almacenan
wp.customize.control
y los objetos de configuración se almacenan enwp.customize
. La clase de valor tiene muchas funciones, allí puede ayudarlo.Ajustes personalizados
Con estas funciones podemos mejorar nuestra configuración personalizada.
también utilizable para una matriz
Obtener
Ver el resultado en la consola.
Conjunto
También puede cambiar los valores de configuración mediante la función
set
.Obtener con el control, como objeto
Fuente útil
fuente