Supongamos que hemos creado un tema con una serie de Configuraciones y controles del personalizador que permiten a los usuarios del tema personalizar varias cosas en el front-end del tema, como el título del sitio web, el eslogan y el color..
Sin embargo, es posible que algunos de nuestros usuarios no sepan de inmediato que pueden personalizar estas partes particulares del tema, especialmente si están enterradas en varios Paneles y Secciones. Entonces, ¿cómo podemos hacer que sea más rápido para ellos personalizar el tema??
WordPress.com ha agregado recientemente los botones Editar en algunas áreas editables, que se notan inmediatamente al iniciar el Personalizador. Cuando el usuario haga clic en estos botones, les mostrará el respectivo Control.
El nuevo botón "Editar" en la ventana de vista previa del personalizador en WordPress.com,Esta es una buena mejora de UX que también podemos lograr con la API de JavaScript del personalizador en nuestro tema. Y encontrará que hacerlo no es tan complicado como puede haber imaginado. Entonces, echemos un vistazo rápido a cómo funciona.
En el último tutorial, solo escribimos código en el customizer-control.js
archivo, que afecta a las interfaces de back-end del personalizador. En este tutorial, también emplearemos el otro archivo., personalizador-preview.js
, que se carga en la ventana de vista previa. Debes tener estos dos archivos creados y cargados. De lo contrario, le sugiero que siga el primer tutorial de esta serie antes de continuar..
En primer lugar, añadimos un par de Editar Botones junto al título del sitio.
"rel =" home ">
Utilizando is_customize_preview ()
, este botón solo se mostrará en la ventana de vista previa del personalizador. Cada uno de estos botones tiene asignado un clase
nombre, .personalizador-editar
, lo que nos permitirá seleccionar estos botones y enlazarlos con un hacer clic
Evento mas tarde.
Además, también hemos añadido estos botones con una control de datos
atributo que contiene el nombre o el ID de las Configuraciones registradas en el Personalizador. El nombre en este atributo nos ayudará a determinar la configuración y el control correctos para servir al usuario más adelante.
Ya que la presentación no es nuestra principal preocupación por ahora, nuestros dos botones "Editar" en la ventana de Vista previa no se ven tan bien como los de WordPress.com. Puede agregar los estilos de una manera que coincida con el diseño de su tema como un todo.
A continuación, definimos un Evento personalizado; se hace clic en un evento que le dice a uno de estos botones. Agregue el siguiente código en el personalizador-preview.js
expediente.
var personalizar = wp.customize; $ (document.body) .on ('click', '.customizer-edit', function () personaliza.preview.send ('preview-edit', $ (this) .data ('control')); );
El código une cada uno de estos botones con el hacer clic
Evento, utilizando el .preview.send ()
Método para lanzar un evento. los .preview.send ()
El método toma dos parámetros, a saber, el nombre del evento personalizado y el argumento. En nuestro caso, hemos definido un nuevo evento llamado vista previa-editar
, y pasar un argumento con los datos recuperados de la control de datos
atributo del botón.
Podemos escuchar un Evento personalizado emitido desde el .preview.send ()
Método a través de otro método de personalizador llamado .previewer.bind ()
-Observe la vista previa
con er
. Este método es similar al de jQuery. .en()
Método, en el que definimos el nombre del evento para escuchar y una función que se ejecutará cuando se active el evento. Añadir .previewer.bind ()
en el customizer-control.js
, como sigue.
var personalizar = wp.customize; personalizar.previewer.bind ('preview-edit', función (datos) );
A continuación, transformamos los datos pasados en un formato de cumplimiento JSON, seleccionamos un elemento de control basado en el nombre
recuperado de los datos y enfoque en el elemento de control utilizando el Personalizador .atención()
método.
var personalizar = wp.customize; customize.previewer.bind ('preview-edit', function (data) var data = JSON.parse (data); var control = customize.control (data.name); control.focus (););
Ahora, como puede ver a continuación, cuando hacemos clic en, por ejemplo, el botón "Editar texto", se mostrará la configuración "Título del sitio" y se enfoca el cursor en la entrada.
El botón Editar en acción.Además, si nos fijamos en el código fuente, el .atención()
método acepta un parámetro llamado completar Recuperación de llamada
. Este parámetro se ejecuta consecutivamente después de la .atención()
se ejecuta la funcion Podemos utilizar este parámetro, por ejemplo, para agregar un efecto de animación..
customize.previewer.bind ('preview-edit', function (data) var data = JSON.parse (data); var control = customize.control (data.name); control.focus (completeCallback: function () setTimeout (function () control.container.addClass ('shake animated');, 300);););
La experiencia general ahora se siente más viva..
Elemento de entrada mejorado con animación CSSHemos mencionado un número de las API de JavaScript del personalizador:
.preview.send ()
método para lanzar un evento personalizado..previewer.bind ()
Método para enlazar el personalizador con un evento personalizado..atención()
método para centrarse en un elemento de entrada de un Control, así como la completar Recuperación de llamada
parámetro.En este tutorial, usamos estos métodos para permitir a nuestros usuarios de temas editar el texto del título del sitio rápidamente haciendo clic en el botón "Editar texto" en la ventana de vista previa.
Todavía nos queda un botón para que aparezcan los controles de color. Pero lo dejaré aquí como un reto; Usa los mismos tres métodos para hacer la función "Editar color". En caso de duda, no dude en echar un vistazo al código fuente..