Hay muchos tutoriales en línea sobre la creación de widgets personalizados, pero desafortunadamente la mayoría de ellos rara vez exceden los elementos básicos. Es por eso que, en el tutorial de hoy, le mostraré cómo construir un widget para soporte para un número ilimitado de testimonios. El problema con los campos repetidos es que debe cuidar el nombre de los campos, lo que puede ser difícil. Hay dos posibles soluciones para resolver este problema y, para fines de aprendizaje, lo haremos de la manera difícil: con la columna vertebral. Es un marco fácil de JavaScript que le permite escribir fácilmente aplicaciones frontend. Por supuesto, podríamos usar jQuery para esto, pero apoyarme, una vez que terminemos, estarás agradecido de no haberlo hecho.
Cree y ponga el archivo JavaScript necesario en la cola antes de comenzar, algunos trabajos estándar están en orden; Necesitamos crear un nuevo archivo JavaScript (en la carpeta JS de su base) y administrarlo. Then glue the following code in functions.php you.:/** * enqueue admin testimonials javascript */function testimonials_enqueue_scripts () {wp_enqueue_script (‘admin-testimonials’, get_template_directory_uri (/js/admin testimonials’, (‘JQUERY’, ‘ Subrayado ‘,’ Backbone ‘)); } add_action (‘admin_enqueue_scripts’, ‘testimonials_enqueue_scripts’); Además de nuestro archivo recién creado, también necesitamos una serie de adicciones, en nuestro caso necesitamos Backbone, que ya está en el paquete con WordPress, ¡bastante cuidado!
Defina la clase entonces, necesitamos crear un nuevo archivo, llamado clase testimonial-widget.php, colóquelo en el directorio Inc de su base y preguntarlo desde funciones.php: / ** * cargar widget testimonial * / reequire get_template_directory ( ). ‘/inc/class testimonial-widget.php’; Abra el archivo, porque en él, definiremos una nueva clase para nuestro widget de testimonio e ingresaremos el siguiente código: mis testimonios widget ‘)); } Si no lo sabía, un constructor es un método especial que se llama automáticamente cuando la clase está instantánea (con una nueva palabra clave). Hay muchas opciones que puede enviar al constructor matriz (construcción wp_widget :: __) , Pero para el propósito de este tutorial, mantengamos las cosas concisas. Cuando guarda el método, así es como muestra el tablero de widget:
Nuestro nuevo widget de botón de testimonio define el método de actualización adicional, para definir el método que será responsable de la seguridad. Cuando acepta cualquier tipo de entrada de sus usuarios, siempre es recomendable desinfectar adecuadamente los datos. Este ejemplo es básico, pero debería darle un buen punto de partida:
Public Function Update ($ new_instance, $ Old_Instance) {$ instance = array (); $ instancia [‘header’] = wp_kses_post ($ new_instance [‘Header’); $ instancia [‘testimonials’] = $ new_instance [‘testimonios’]; devolver $ instancia; }

Aquí, creamos una nueva matriz que contendrá el encabezado de la cancha y otra matriz con todos nuestros testimonios.
En este caso, el tribunal es una copia única del widget, porque podría tener más widgets del mismo tipo en diferentes barras laterales. Cada uno sería una instancia. Tema: En este método, decidí desinfectar solo el encabezado, pero transmitir todos los testimonios tal como son. Cuando haya terminado con este tutorial, realice todos los testimonios y aplique una de las funciones de desinfección aceptadas por WordPress. Empieza aqui. Defina el método de reproducir el formulario WP-Admin ahora en la parte más importante: el formulario de testimonio. En él, debemos lidiar con las siguientes responsabilidades: tomar datos o establecer valores predeterminados si aún no hay datos
Muestre cualquier campo que no repita (como el encabezado) si los tenemos
Como usamos Backbone (JavaScript), también debemos definir una plantilla para ser utilizado para cada testimonio individual
Muestre un sustituto, al que se adjuntarán todos los testimonios.
Inicializar los datos que se hacen cargo una vez que están dispuestos
Copie el siguiente método en la clase (explicación a continuación):
Formulario de función pública ($ instancia) {// segmento #1 $ header = vacía ($ instancia [‘header’)? ‘Testimonios’: $ instancia [‘encabezado’]; $ header = vacía ($ instancia [‘encabezado’)? ‘Testimonios’: $ instancia [‘encabezado’]; $ testimonials = isset ($ instancia [‘testimonios’))? array_values ($ instancia [‘testimonios’))? array_values ($ instancia [‘testimonials’): array (array (‘id’ => 1, ‘cita’ => ”, ‘autor’ => ”, ‘imagen’ => ‘);?>
<etiqueta for = " get_field_id (‘header’);? (‘testimonials’);?>–cita “> cita: <texture rows =" 4 "class =" wideFat "id =" get_field_id (‘ testimonios ‘);?>–quote “name =” get_field_name (‘ testimonials ‘);?>? [] [cita] “>
for = ” get_field_id (‘testimonials’);?>–autor”> autor : <input class = "
WideFat "id =" get_field_id (‘testimonials’);?? Get_field_name (‘testimonios’);? Class = “pashicons pashicons-dismiss”> eliminación de testimonios
<div id = "JS testimonials- Id;?Antecedentes: #fafafa; “>
<a href="#ication class="button" id="js-testimonials-addd nin testimonial
< lima testimonialsjson = <?, testimonialsjson);
En el primer segmento, definimos un encabezado que se utilizará en el delantero. Podría agregar fácilmente más campos aquí, por ejemplo, si tuviera una diapositiva con estos testimonios (como uno en nuestra página de inicio, entonces podría agregar algunas opciones de configuración de control deslizante, como el rango de ciclo. El segmento #2 solo reproduce esos campos . Segmento #3 es el lugar donde las cosas se vuelven interesantes. Puede haber notado que todos los resultados aquí están envueltos en una etiqueta . Debido a que usamos la troncal para jugar campos repetitivos, necesita una plantilla para aplicar a cada objeto ( Testimonio en nuestro caso). Usamos dos campos para este tutorial (cita y autor, pero puede usar tanto como desee poder eliminar un testimonio, el último elemento es un botón para hacer exactamente eso. Es posible que haya notado que tiene un parámetro HREF vacío; esto se debe a que usaremos JavaScript para hacer una llamada asíncrona. Toror de los testimonios para aparecer. Aparte de eso, decidí jugar el nuevo botón de testimonio aquí, pero no dude en ponerlo en otro lugar. En el último, quinto segmento, creamos un objeto JSON a partir de nuestros testimonios existentes y luego llamamos a una función que los reproducirá (más al respecto pronto). Enviamos la identificación de Widget Court y el objeto JSON. Si intenta actualizar el tablero de widgets en este momento, la consola informará los errores de JavaScript, porque nuestra función de repopulateMonials aún no existe. Antes de definirlo, primero …
Defina el método de reproducir el sitio web Este es el último método y se utiliza para mostrar nuestros testimonios en una barra lateral: widget de función pública ($ args, $ instancia) {$ header = apply_filters (‘widget_itle’, vacía ($ instancia [header ‘])?’ ‘: $ instancia [‘ encabezado ‘], $ instancia, $ this-> id_base);?]?>
Cómo crear un widget de WordPress con columna vertebral
Tags Cómo crear un widget de WordPress con columna vertebral
homefinance blog