 ¿Qué guay? ¿A cuánta gente ha engañado? Porque se metió una charla de código. Hombre, si yo digo que voy a hablar de Hello Dolly, si habla de Dolly ¿qué pensás que estoy hablando? ¿En esta búsqueda? No, no es una charla vegana, esto es 100% vegano, tenemos un código de conducta. Hombre, cuando salgáis de aquí a lo mejor no pensáis en esta Dolly, sino en esta Dolly. Que ya os enteraréis de quién es esta Dolly, porque esta es Dolly. Pero en realidad yo he venido a hablar de esto, he venido a hablar de el plugin Hello Dolly, que es el plugin más descargado, el segundo más descargado me parece que estaba de WordPress. Cosa que no tiene ningún mérito porque lleva metido por pelotas en WordPress desde 2003. O sea, en cualquier instalación de WordPress todo el mundo se encuentra con este plugin. Lo que sí que tiene mérito es que es el número 53 en número de instalaciones activas. Cosa que es curioso para un plugin que no hace absolutamente nada. Entonces por eso tiene unas reseñas que son maravillosamente horrosas. Todo el mundo diciendo que esto que es, esto para qué sirve, esto para... Vale, pero para explicaros de qué va esto y por qué sirve para qué sirve ese plugin antes os tengo que contar unas cuantas cosas. Primero os tengo que contar quién soy yo. Vale, yo me llamo Nilo Vélez, soy apagafuoso profesional, barra desarrollador y llevo aprendido a hacer páginas web desde 1998. Y también haciendo página web profesionalmente desde 1998. En ese tiempo, pues como os podéis imaginar, he pasado por todo. Empezando por ese maravilloso front page 98 express. Homesite, Dreamweaver, ASP, MySQL, Visual Studio, Visual Studio para aplicaciones, Call Fusion, Macromedia Flash, Adobe Flash. Ya no hay que utilizar Flash, ahora vamos a utilizar móviles. Vale, trabajo en un sector, que es el que está ahí vosotros, lo siento mucho, en el que sale algo revolucionario 3 veces al año. Pero revolucionario de todo lo que estás haciendo está mal hecho y a partir de ahora lo tienes que hacer así. Entonces cuando son cosas grandes no puedes decir, joder, voy a volver, voy a ponerme, voy a meterme en un máster y voy a tirarme dos años estudiando esto. Jodido andas. ¿Qué es lo que haces? Pues sale una herramienta nueva y tú con eso te vas montando tu caja de herramientas. Tu caja de herramientas dice, bueno, pues si tengo que hacer un foro lo hago con esto. Si tengo que hacer una web corporativa lo hago con esto. Como editor, parece que para lo que utilizo me va esto. Entonces yo, por ejemplo, pues en 2004 mi stack era una cosa así. Si tenía que hacer un foro lo hacía con PHP bb, las tiendas tenía un proveedor que las hacía con oscomers, cuando había que hacer algo grande a medida tiraba de código propio, y con eso, pues bueno, iban saliendo cosas nuevas, iban tenándome para que servían, y dice, oye, pues parece que este editor es mejor que el mío, pues parece que este motor de foro funciona mejor y más fácil de gestionar. Entonces de 2004, ah bueno, perdón, los blogs yo los hacía con blogger, porque al final blog en aquella época los que tenían blog eran, soy un escritor, soy un artista y tengo mi blog, o sea, el blog era un blog y punto. Más o menos por 2009 ya pasé de utilizar como control de versiones Dreamweaver. ¿Alguien ha utilizado control de versiones de Dreamweaver? ¿Quién coño tiene abierto el archivo? Vale, pues de ella me pasé a una cosa mucho más avanzada como control de versiones que es Dropbox. El que no haya pasado por ahí, miente. Vale, de ahí va pasando de tecnología y una de las cosas que cambie es que, oye, pues resulta que el WordPress este que antes era una cosa muy sencillota, muy básica y que antes era mejor blogger, pues oye, que WordPress la ha metido temas, la ha metido ya cositas que se pueden hacer cosas con él. Y además más o menos por esta época estaba trabajando con una agencia de diseño de Madrid en el que ya los clientes y la misma agencia ya empezaban a utilizar temas de pago y ya tenías temas bonitos que ya estoy ya dada para hacer web corporativas. A ver, el problema es que esto al final pues para mí era una herramienta más y dice, bueno, esto PHP, vamos a tocar el PHP, que es cuando te metes la madre de todas las hostias. Porque de ahí pues ya a base más o menos por 2011, 2012 ya empecé a entrar en contacto con la comunidad de WordPress Villa, ya me fueron encarregleando y ya me di cuenta de que en vez de hacer esto podía hacer esto. Que es que ahora prácticamente todo, salvo cosas muy concretas, las hago con WordPress. Claro, eso, si no se ha contado todo esto que se acaba de contar todo este rollo pues ahora llega cualquier desarrollador de pata negra y dice WordPress es una mierda, el que utiliza WordPress es porque no sabe utilizar otra cosa. Yo sé utilizar 50 cosas más, lo que pasa es que para el 95% de los casos WordPress es más que suficiente. Ya más tiene una serie de cosas que hace que sea más eficiente, más cómodo, más barato de mantener y sobre todo es muy, muy, muy, muy flexible y muy, muy, muy fácil de modificar, gracias. Pero tiene una serie de reglas, esas reglas cuando se habla en foros de modificaciones del código siempre, siempre es al tal que dice oye, esa no es la forma de hacer las cosas en WordPress y eso en el core sobre todo es un poco una religión, es the WordPress way. Vale, pero esto al final dice yo te estoy dando un framework porque al final es un framework, es una plataforma para poder hacer muchas cosas, pero para que esa plataforma funcione como tiene que funcionar, tú tienes que aprender unas herramientas mínimas que tiene y a partir de ahí, poder aprovechar esa plataforma. Entonces, cosas tan básicas como que tú cuando te descargas WordPress, tú te encuentras con esto. O sea, estos no los archivos de me descargo WordPress o descomprimos, te encuentras con esto. Esto, aunque no lo parezca una caja de bombas, porque esto el que no sabe de qué va esto y toca esto la primera vez y ve que tos PHP, más o menos sabe cómo lo toca, se pone a tocar como loco. Problema que tiene esto, aparte de que puedes producir un problema de seguridad, puedes hacer cargarte la página, el problema es que por muy bien que lo hagas y por muy bueno que seas, estos archivos se reemplazan cada vez que tú actualizas WordPress. Con lo cual, si yo he hecho mis cambios maravillosos aquí y ahora sale una versión nueva de WordPress, WordPress va a contar con que estos archivos no debería haberlo tocado, tienen que ser siempre los mismos, así que lo reemplaza a todos y mi código se ha perdido. Lo único que se puede tocar es el WP config y el WP content. Pero claro, eso a la hora de trabajar pues dice, joder, es una limitación. Bueno, vamos a ver cómo tenemos que hacer dos tareas normales desde el punto de vista de desarrollo, es decir, voy a decir dos cosas muy básicas que se pueden hacer instalando un plugin. O sea, tú tienes un repositorio de plugin con 56.000 plugins que puedes decir, me instale un plugin y lo hago. Pero hay muchas cosas que realmente son muy básicas, que no necesitan depender de un plugin y que realmente son modificaciones que haces para ti, pero claro, tienes que saber cómo hacerlas. Vamos a hacer dos cosas. Bueno, una cosa que no se ha dicho, me lo he saltado así a la torera, es que aquí tenéis el código que voy a utilizar. De todas maneras, he visto que tampoco he extraído portátil y voy a darle un ritmo que es más contarlo que otra cosa, pero esta charla, las diapositivas las voy a colgar y ahí vais a tener el código de ejemplo que estoy utilizando, ¿vale? Vamos para antes. Aquí. ¿Cuáles son las dos tareas que voy a hacer? Una es añadir el código de verificación de Google Search Console, la típica de añadir una página en Analytics y me piden que la valide y me dicen, tienes que meter este código en la cabecera de tu sitio, quien dice para ser console para Pinterest, para cualquier cosa que tengas que meter un código en la cabecera de WordPress. Y otro, vamos a hacer una chorradita, que es que a todas las entradas de nuestro sitio le vamos a poner al pie un enlace de donación, de la típica de dame un café, o sea, dame un euro para un café, pero se lo voy a poner a todas las entradas para que si el día de mañana cambia, no tenga que meterme en todas las entradas a cambiarlas una por una, ¿vale? Son dos ejemplos muy tipicotes. Me voy a sentar y me voy a pasar aquí. Aquí tengo una instalación de prueba, echa en local. Aquí tengo mi editor y vámonos a public. Aquí tengo mis archivos de WordPress, ¿vale? Esto hemos dicho que no se toca, evidentemente, se ve medio bien el código, es que mucho más no puede ampliarlo. Vale, ahora dentro de content, esta es la carpeta que se pasa al enlace, que es donde está el código de ejemplo. Estos son los archivos de idioma de WordPress. Bueno, esto es un tipo especial de plugins, lo veremos y si nos da tiempo los vemos. Estos son los donde van los plugins, los temas, esto es una carpeta donde guarda las actualizaciones hasta que las publique, este es donde van todas las imágenes que se suenan a las entradas. Esto realmente es WordPress, el contenido nuestro va aquí y la base de datos. Esto es lo que nosotros podemos tocar. Entonces, bueno, pues yo ya que sé eso, pues esta web que tengo yo aquí, ¿vale? Yo me voy a la carpeta de temas. Dentro de temas el tema 2017. Y bueno, pues aquí estoy viendo que estos son un montón de archivos en PHP que tienen un nombre mediológico. Entonces, pues voy a hacer como hacía Jumbla, como hacía Emprestasop o como hacía Emphpb. Dio, venga, ¿dónde está el header? Aquí, esto es el header, ¿vale? Pues me voy a ir a temas 2017, el header. ¿Vale? Y dice, bueno, esto tiene un poquito comentario y tal. Dice, vale, pero aquí está abriendo el HTML y aquí está abriendo el GDHTML. Por lo cual, si yo quiero meter algo en el GDHTML, pues me vengo aquí, me voy a mi código de ejemplo, lo copio, lo pego, recargo la página. ¿Cómo que resolviendo Joss, estás en local, macho? ¿Vale? Que tiene que avisar a Google de todo lo que está haciendo primero. Bueno, hola Google. Vale, vemos el código fuente y ya está aquí mi código. Vale, ahora el otro, pues no sé cómo hacerlo, pero me pongo a buscarlo por internet y me encuentro con que haya un código que me dice, mira, cógete este, cógete, a ver, perdón, ¿dónde estás? Cógete este snippet, que no sé ni qué coño es un snippet, y coges este código y lo metes dentro del archivo Function de tu tema. Y tú dices, pues, vale. Entonces, si yo tengo aquí mi web, yo tengo aquí una entrada, que genera aquí un montón de entradas de prueba, entrada de prueba ha sido buena, no son chiquitipsum, es un lorenipsum normal, ¿vale? Vale, entonces voy a meter aquí el enlace, entonces me dice, pues vale, copiate este código y lo metes en el Function de tu tema. Aquí hay un archivo que se llama Functions, me voy aquí al final, esto no sé, me da igual, me voy al final, cojo esto, pego aquí, no sé lo que hace, recargo, sí, ¡pum! ¡Ala! Pues ya tengo un enlace, ya tiene todas las entradas del enlace, no tengo ni poñeteria de cómo funciona, pero yo lo que estoy viendo es bueno, pues aquí está, que dice, está metiendo esto aquí en el contenido, y bueno, pues yo sé que aquí tengo un enlace, pues yo sé HTML, tengo un enlace, yo puedo cambiar aquí la URL y ya está, yo con esto ya puedo trabajar, ¿vale? Pues como hagas esto, estás igual de jodido que si hubieras tocado el correo. Vale, hay una norma que se utiliza siempre en desarrollo y es una norma que tenéis que tener a fuego, es el código de otro no se toca, nunca, y aquí estoy tocando el código del tema de otro, el 2070, va a pasar exactamente lo mismo con el correo, la próxima vez que salga una actualización va a reemplazar todo esto, voy a perder mis cambios. ¿Hay una opción? Dice, bueno, desactivo las actualizaciones de WordPress. Vale, el año que viene hablamos. Vale, pues entonces, ya que hemos visto que esto no se puede hacer, pues dice, joder, pues venga, me voy a la comunidad y dice, oye, que me han dicho que soy inútil y que estoy haciendo esto y que no tengo ni idea, dime cómo se hace esto. Vale, vamos a deshacer el desastre. Vale, me vuelvo aquí y dice, bueno, pues, hombre, es que lo que tienes que hacer es hacerte un tema y tú dices, ostias, y tú dices, bueno, pero es que hay una cosa que tiene WordPress que son los temas hijos. Vale, los temas hijos es que en vez de tener que hacer un tema desde cero, WordPress tiene un mecanismo por el cual tú puedes coger el tema que tú quieras y crearte un tema hijo de ese tema en el que le dices, quiero que cojas todo el contenido, todas las plantillas, todo lo que tiene, el tema padre, y a ese tema padre le modificas esto, sobre eso le añades lo mío. Dice, bueno, pero también, joder, tengo que hacer un tema. ¿Vale? Aquí hay dos cosas, una está la referencia, en todas las dispositivos voy a poner referencia porque esto, yo lo voy a contar por encima, pero evidentemente, o sea, la documentación en algún momento, o la tendréis que leer, ¿vale? Ahí tiene la documentación de cómo se hacen los temas hijos, cómo funcionan y lo segundo es una página muy maja en la que tenéis para descargar los temas hijos de, creo que son cincuenta mil temas. Es decir, yo estoy trabajando con Divi, quiero hacerme un tema hijo de Divi, te metes ahí, buscas Divi, y te bajas el tema hijo de base de Divi. ¿Vale? Porque hay temas, sobre todo, cuando son temas grandes complicados, donde hacer un tema hijo tiene su historia y sí que se pueden romper cosas. Pero bueno, como yo solamente quiero enseñaros cómo funcionar los temas hijos, vamos a ir a lo básico, ¿vale? Vamos a empezar creando un tema. Hice, joder, pues vamos a crear un tema. ¿Claro un tema? Realmente lo único que hay que hacer es crear una carpeta, esa carpeta tiene que tener un style CSS y dentro del style CSS tiene que empezar por un comentario que tiene que tener la línea Cigname, o sea, el nombre del tema, ¿vale? Y tiene que tener luego los archivos de las plantillas que muestran el contenido. Joder, es una sencilla, ¿no? Vámonos aquí. Venga, pues vámonos a la carpeta themes y vamos o themes, ¿tú sabes? Quiero una carpeta dentro de themes, que es mi tema. ¿Vale? Dentro de mi tema voy a crear un nuevo archivo que es style.cs, ¿vale? Y dentro de este style.cs, bueno, vamos a ver. Estoy viendo, ¿vale? Un comentario que sea Cigname, ¿vale? Joder, estoy dándole a dónde es. Pues creo un comentario en mi CSS y le digo Cigname igual a mi tema. ¿Vale? Y lo guardo. Bueno, espérate, ¿no? Es que se me molgan si es una cosa. Bueno, ¿os creéis que no estaba ya el tema en WordPress? Si queréis, lo borro, ¿vale? Bueno, de todas maneras va a salir roto. Vámonos al admin. Ay, que tenía que haber una pestaña nueva. Voy a tener que esperar a que cargue esta. Nooo. ¿Vale? Contraseña supersegura. Por lo menos uno, dos, tres, cuatro, cinco, seis. ¿Vale? No, no la quiero guardar. Aparencia, temas. ¿Vale? Aquí está mi 2070, ¿vale? Pero aquí me dice que tengo un tema dañado porque me está diciendo que la plantilla no está disponible. Dice, macho, que sí, quiero hacer un tema sencillo, pero no tan sencillo. Mételi algo. ¿Vale? Entonces, lo mínimo que tiene que tener cualquier tema es el index. Así que vamos a crear un nuevo archivo, que es el index.php, ¿vale? En blanco, total, joder, paqué. Recargo. Y ya me está diciendo que tengo dos temas. Que tengo el 2070 y otro tema. Pues vamos a activarlo. Bueno, de momento no tiene mucha historia, ¿no? Estoy tocando código. ¿Vale? Vamos a visitar el sitio. ¡Ah, está roto! Sal una pantalla en blanco. No, macho, es que has metido una página en blanco. Es que si yo me cojo ahora, vamos a hacer un HTML. Vamos a meter un body. Vamos a meter un H1. Y dentro del H1, vamos a poner un Oli. Bueno, vamos a ponerlo por lo menos a la entidad, que es agarro. Esto sabe. ¿Vale? Recargo. ¡Ya ha hecho un tema! Vale, esto, evidentemente, todavía no sirve para nada. Esto es el mecanismo básico, pero a partir de ahora habría que ponerse a desarrollar un tema entero para que muestre los archivos, que muestre las entradas, las páginas. ¿Vale? Pero hemos dicho que vamos a hacer un tema hijo. ¿Vale? El tema hijo, por aquí, es respecto a esto. Bueno, esto no lo ha metido, pero es que se le pueden meter más campos para que en vez de salir mi tema, pues sale tema, autornilobeles, salga la descripción. ¿Vale? Pero respecto a esto, ¿qué sería la estructura básica de la cabecera del style de un tema? Si yo le añado esto, simplemente esta línea, le estoy diciendo, quiero que utilices como plantilla, como padre, a ese tema, que evidentemente tiene que estar instalado en mi sitio. Pero vámonos a, voy a quitar el index, que ya no me voy a hacer falta, y aquí le digo que template 2017. ¿Vale? Que simplemente es la carpeta, raíz del tema que quiero que herede. ¿Vale? Esto aquí es una cosa que sí que es importante, y es que si lo intento recargar, va a fallar, porque todavía se cree que es un tema de verdad. Lo único que hay que hacer simplemente es volver a activar otro tema a cualquiera. ¿Vale? Va a recargar la página de temas, y ahora ya, si me voy a los detalles de mi tema, ya me está diciendo, ya me ha reconocido que es un tema hijo de 2017. Por anónimo. Por anónimo. ¿Por qué escribí en la cabecera? Ustia. ¿Vale? Vamos a visitar el sitio. Hola. No, caché no tengo. Está activo mi tema, vamos a recargarlo. ¿No he borrado bien el... Ah, perdón, que no he borrado. No, pero no lo he borrado. Vale, vale. Borro este. Ya me quedo solamente con el índex. Y ahora lo que está haciendo es que como ya no tiene un índex, lo primero que intentará hacer cuando cargue este tema es cargar el índex. Como no tiene el índex, se va a ir al padre, y en vez de cargar mi índex, va a cargar el índex del padre. Entonces ahora ya si recargo, pues... Ah, chiquitín. ¿Vale? Ya, por lo menos tiene algo. ¿Vale? Está cargando el contenido, está cargando ya el código. Lo que le falta son los estilos. Por una cosa que cambió hace un tiempo, es que ya los estilos del padre no se cargan por defecto. ¿Qué hay es donde entra la página que os he puesto de descargar temas hijos? Porque lo que está es el código que tiene que tener cada tema para querer el del padre. En la mayoría de los temas es una cosa muy genérica. Lo tengo aquí en material, tengo tema hijo, tengo aquí mi style. Y en el functions, me voy a copiar esto, le voy a añadir a mi tema hijo un nuevo archivo, que es un functions.php. ¿Vale? El function es un archivo especial de los temas hijos porque cuando haces un tema hijo, si el tema hijo tiene un archivo, ya no carga el del padre. En el caso del function es distinto, el function es único archivo que se carga siempre primero el del hijo y luego el del padre. Con lo cual, a lo que haga el padre, le puedo añadir lo que haga el hijo. Lo que voy a hacer simplemente, esto no va a hacer falta ahora, voy a meter un código que todavía no sabéis lo que hace, pero que realmente lo único que está haciendo es que está encolando, está cargando los temas del padre, la hoja de estilos del tema padre. ¿Le cargo? ¿Qué me ha dejado? ¿Dónde está? Ay, perdón. Ay, bueno, perdón, perdón, perdón, que me ha faltado, vale, vale. ¿Qué es lo que me ha dejado? Sabe, pero este código porque no funciona, voy a estar llamando una función. No funciona esta función porque no hay nada que lo llame. Aquí, lo que está haciendo es que estoy añadiendo un gancho de acción, que ahora voy a explicar lo que es. Bueno, de momento vamos a ver que funciona y ya funciona todo. Tengo un tema que es exactamente igual que 2070, pero los archivos que yo modifique son los del tema hijo, con lo cual yo todo lo que toque en mi hijo va a ser mi código, el código de 2070 y no lo toco, con lo cual si sale una versión, yo voy a seguir trabajando en la mía y no me van a pisar nunca el código, porque el tema hijo es mío. Vale, aquí se pueden meter plantillas, es lo típico que se hace por ejemplo si a partir de un tema que no está preparado para una tienda, pues meto aquí las plantillas del carrito, de la compra, de mi cuenta y demás. Son para casos muy concretos, lo normal es que solo de un tema hijo lo que es muy normal es que simplemente utilices este código que lo que le estás diciendo es, además de cargar el estilo del padre, quiero que cargue los estilos del hijo, con lo cual en este style, que solamente está utilizando para definir el tema hijo, pues yo aquí puedo poner mis estilos, yo puedo decir aquí por ejemplo cambiar la tipografía, cambiar colores, cambiar el ancho de las columnas y el otro que voy a tocar es el functions del hijo, que es donde yo voy a meter mi código. ¿Vale? ¿Por qué puedo tocar casi cualquier parte de WordPress directamente de un archivo Function? Porque WordPress tiene una cosa fantástica que son los hooks, los ganchos. Hay dos tipos de ganchos, son los ganchos de acción y los ganchos de filtro, son las acciones y los filtros. Los ganchos de acción son un tipo de sistema basado en eventos, que realmente lo que hace es que crea una serie de condiciones que dice cuando se cumpla esta condición ejecutas este código. ¿Vale? Lo que hemos visto aquí en este, lo que está diciendo es que cuando llegues al punto en el que WordPress está encolando los estilos de la cabecera, entonces me llamas a esta función, y esta función lo que va a decir es, además de los estilos de todo lo que está metiendo WordPress en la cabecera, también me ejecuta estas dos funciones, también me encolas mis dos estilos. ¿Vale? Aquí parece muy complicado, pero esto en realidad es tan sencillo como esto, esto es el funcionamiento básico. ¿Vale? Lo que estás diciendo es, tú metes en tu código le dices, añade una acción que es que cuando aparezca el evento init, este init por ejemplo es cuando se ha terminado de cargar WordPress, me llamas a la función que se llama así, y yo defino una función que se llama así, y ahí hago lo que yo quiero que haga, con lo cual lo que estoy diciendo se implementa WordPress o WordPress. Cuando pasa el init, o sea, cuando hayas terminado de cargarte ejecutas mi código, qué es lo bueno que tiene, que este código lo puedo meter donde quiera, no tengo que meterlo en el tema, no tengo que meterlo en el código de otro, no tengo que meterlo en el corre, yo lo puedo tener aislado en un sitio mío, en mi tema por ejemplo, y no estoy tocando el código de nadie. Aquí tenéis la referencia, y aquí tenéis la referencia de todos los hooks que tiene por defecto WordPress. ¿Vale? ¿Por qué? Os he puesto en mente el de los estilo de la cabecera y el de the init. Me han metido en cada versión, creo que hay un ciento y pico ya, porque le puedo decir de todo, quiero que me metas tú en la cabecera, quiero que me metas tú en el pie, quiero que me hagas esto cada vez que alguien actualice en la entrada, quiero que me hagas esto cada vez que se crea un usuario nuevo, tienes muchísimas acciones que puedo utilizar para enganchar tu código. A eso vamos. Y este plugin, que lo tengo instalado, lo que os hace, vale, simple usted no, a la tajotecla con eso, lo que os hace es esto, os saca esa etiquetita, aquí tengo, para que se vea, tengo muy poquita resolución, vale, y va a ser un poquito horrible, pero si yo le doy aquí al simple show hooks, que es el plugin este, y le doy que muestre los ganchos, lo que me está diciendo son todos los ganchos que tiene WordPress. Bueno, y estos son solamente los ganchos, porque si encima de los ganchos le digo los filtros, pues ya es como esto, explota, ¿vale? Vale, estos son todos los sitios a los que yo me pueden enganchar con mi código. Vale, vamos a decirle que dejar de muestre los filtros, vamos a cancelar las acciones, vale, y si nos vamos al, joder, aquí está Linit, WPG, vale, es que aquí no se sabe bien. Bueno, aquí estaría en el 10 que es por defecto, tiene que haber un y 2017, es que no sé ni cómo se llama la función que he creado, mi tema en colar estilos, bueno, por aquí en alguna parte del WPG, por eso lo desarrollar normalmente tenemos unos pantallones así, tiene que haber por aquí un, me he recargado, sí, ah no, perdón, que es el WP en Queue Styles, y dónde está? Aquí, WP Scripts, aquí está, vale, esto lo que me está diciendo es en cada gancho lo que he metido, me está diciendo que en el gancho WP en Queue Styles Scripts está mi función está de aquí, y me está diciendo además que está con una prioridad de 100, de 10, perdón, que es la prioridad por defecto, vale, la prioridad es simplemente lo que dices que cuanto según vas cambiando ese número, cuanto más pequeño es el número es el orden el que se ejecuta, entonces si yo por lo que sea mi código, quiero que lo meta antes, por defecto, esto es un 10, esto es lo que sería el por defecto, quiero que salga por encima de todo lo demás, pues le pongo un 1, le meto un 5, recargo, a su ritmo, y fijaros que ya está en la prioridad 5, pone más para arriba, esto se hace mucho por ejemplo en un block en el que tienes el contenido de una entrada o el contenido de un carrito que se está mostrando muchas cosas al mismo tiempo, pues en la prioridad que le des es como controlas el que salga antes o después. Vale, vamos a quitar esto, no vale con la por defecto, vamos a la presentación, vale, y lo otro son los filtros, los filtros se utilizan para modificar cosas, espera, me he pasado una, aquí, lo que hace es interceptar el contenido de algo, modificarlo y devolverlo, ahí tenéis también la referencia, ya haber visto que el simple show hooks también saca los filtros, evidentemente una pantalla más grande, y esta sería la sintaxis básica para hacer un filtro, vale, aquí me estoy enganchando un filtro que es the title, que es el título de una entrada, el título de cada artículo de cada página, y lo que le estoy diciendo es añademe al contenido de title, añademe esta función, y en esta función lo que le estoy diciendo es cogeme la variable y le pones el nombre title, vale, en la referencia de los filtros de WordPress te dice también cuáles son los parámetros que va a coger, ya le dices devuelveme, podría decir simplemente devuelveme title y no haría nada, o le puedo decir devuelveme título y además el title, con lo cual en todas las entradas de todo el sitio en todas las páginas, en vez de aparecimiento el título, pones título de dos puntos, esto, esto es muy potente, yo con esto ya puedo modificar mucho contenido, muy a lo bestia, sin estar alterando realmente nada en la base de datos, por ejemplo yo quiero que salgan todos los títulos en mayúsculas, pero no por CSS, sino quiero que salgan en el código en mayúsculas, pues le digo aquí en PHP, string2upper y automáticamente se me va a mostrar todo en mayúsculas, desactivo la función y no he tocado nada, vale, me preguntaban que dónde metería este código, hombre, en todos los tutoriales lo que te dicen es que lo metas en el función de tu tema, y te dicen que lo metas en el función de tu tema porque es lo más sencillo, vale, pero ya en la misma documentación de los ganchos te dice, hombre, que eso muchas veces es innecesario, y entonces dice, hombre, hay forma, además el hacerlo en un tema tiene también otra pega, y es que si yo utilizo siempre el mismo tema, si yo utilizo, por ejemplo, siempre genesis, muy bien, pero si yo hago una modificación, que quiero utilizar en todos mis sitios, quiero llevarme una a otra y cada vez utilizo un tema distinto, es un poco guñazo, porque además es código distinto para cada sitio, no puedo decirlo, tengo en un repositorio y lo copio siempre el mismo, sino que va a ser específico para cada tema, entonces, ¿qué vamos a hacer para no tener que meter esto en un tema, hijo? Pues vamos a hacer un plugin, y aquí es donde empieza mi charla, con créditos y todo, vamos a hablar de Hello Dolly, vale, ahora ya, ahora que ya sabemos más o menos cómo funciona el código de WordPress, cómo engancharnos al contenido, cómo modificar, cómo tocamos las cosas, ahora ya sí que podemos entender cómo funciona Hello Dolly, ¿vale? Y vamos a abrir Hello Dolly, bueno, vamos a desactivar esto porque si no es un poquito incómodo, bueno, no se ha dicho, estos son los ganchos que son ahora mismo en el front en esta página, según el tipo de contenido que mostréis, habrá unos ganchos distintos, en el administrador de WordPress están también otros ganchos, hay muchos plugins que meten sus propios ganchos, por ejemplo, GuComes mete cientos, vale, o sea, lo que te están diciendo es una forma de decir, oye, que cuando tengas que modificar lo mío, no toques mi código, te doy cómo conectarte a mi código, cómo engancharte a mi código, vale, este de momento vamos a olvidarlo y nos vamos a ir a la carpeta plugins y dentro de plugins vamos a Hello Dolly, bueno, pues estoy viendo una carpeta que se llama Hello Dolly, dentro de Hello Dolly hay un archivo PHP solamente, esto lo meten los programas de gestión de control de versiones, vamos a ignorarlo, así que realmente el archivo donde empieza es aquí, no es tan distinto de la cabeza era un tema, ¿verdad? Por el que al final lo que me está diciendo es voy a definir un plugin que se llama Hello Dolly, que la página web del plugin es esta, que la descripción es esta, que el autor es este, esta es la versión y esta blogure la autor, vale, no parece complicado, no? Vamos a hacer la prueba, no? Venga, vamos a hacer una cosa, no vamos a ir al escritorio, ahí lo tenía que haberto, bueno, no vamos a ir a los plugins, vale, este se ha roto, normal, toda una prueba que hice antes, vale, aquí tengo mis plugins y tengo aquí a Hello Dolly, bueno, vamos a empezar por activar Hello Dolly y a ver qué hace, vale, hace esto, vale, pero es que recarga la página y se ha colgado, no, no, está en la página de plugins que seguramente está ahora mismo intentando conectarse a internet y eso no, y va a cambiar, va poniendo frasecitas ahí, de hecho hubo un problema con Hello Dolly que hubo que actualizarlo, porque había gente que estaba muy preocupado porque en su Wordpress salían frases sexistas, vamos a ver, son letras de una canción de 1940, claro que hay frases sexistas, vale, pero que no querían que salieran frases sexistas en el escritorio de su Wordpress, vale, muy bien, pero es que no tiene que salir, es que esto no tienes que tenerlo activado, dice bueno, si esto no hay que tenerlo activado y esto es lo único que haces esto, para que Narice sirve Dolly, bueno, podemos ir leyendo, vamos a ver lo que hace Dolly, Dolly lo que hace es que tiene una función que se llama Hello Dolly Lyric, o sea, letras de Hello Dolly, donde define una cadena de texto que es toda la letra de Hello Dolly, censurada. Ahora coge esa cadena de texto y la divide en líneas, la divide en versos, o sea, crea una RAI y esa RAI, mete todos los versos de la canción y aquí lo que hace es simplemente, bueno, esto es lo que está diciendo este código, me está diciendo es, sácame aleatoriamente una de las líneas de esa RAI, bueno, y esto es una función de seguridad que tiene Wordpress, que controla la salida, pone los acentos bonitos y demás, vale, o sea, que realmente está, bueno, y la, perdón, y la devuelve, o sea, que esta función lo único que hace es que cuando yo llame a esta función, me va a devolver un verso, vale, entonces PHP básico, vale, ahora tenemos otra función que es Hello Dolly, que va a llamar a Hello Dolly, que es Lyric, con lo cual aquí voy a tener un verso, bueno, aquí lo que hace es que averigua cuál es el idioma en el que está instalado Wordpress, bueno, vale, aquí estamos, lo único que hace aquí es que imprime esa frase, o sea, mete un párrafo dentro del párrafo, mete un spam y dentro del spam, por al final lo que estás copiando es Chosen, o sea, que esta función lo único que está haciendo es escribir esa frase metida dentro un poquito de HTML, vale, ¿cómo hace que salga en Wordpress? Pues está enganchándose al gancho admin notices, los avisos del escritorio de Wordpress, y está llamando Hello Dolly, esto ya hemos visto cómo funciona, lo que está haciendo es un gancho del escritorio y dice en este gancho me pone esta frase, y ahora tiene otra función que escribe un poquito de CSS a lo bruto para no complicarlo, no, en vez de encolar una haja de estilo, directamente está metido aquí el estilo, vale, y está diciendo que en el GED, pero en vez del WPGED, en la cabecera del escritorio, del admin, me mete ese CSS, bueno, entendéis ya lo que es Hello Dolly, no, es un plugin de ejemplo, es el plugin más maravilloso que tiene Wordpress, porque esto fue cuando se metió en Wordpress 1.2 allá por 2004, salió la primera versión a la que en vez de hacerse los cambios por hacks, lo que llaman los ficheros de hacks, los hack files, le metieron plugins, claro, si tú metes una mecánica de plugins a todos los desarrolladores que no han hecho un plugin, porque antes no existían, le dieron esto como modelo, para decir, oye, cuando vayas a hacer un plugin, tienes que hacer esto, ya está, eso es toda la finalidad que tiene Dolly, y es maravillosa, porque te está diciendo, oye, que para hacer un plugin, lo único que tienes que hacer es esto, bueno, vamos a ver si es verdad, vamos a ver si es así de sencillo hacer un plugin, vamos a crear una nueva carpeta, que se llama mi plugin, vale, y vamos a cogernos como modelo a Dolly, vamos a cogernos esto, que es lo que se supone que tengo que hacer, vale, dentro de mi plugin voy a crear un nuevo archivo, que se llama mi plugin, vale, el nombre del archivo principal tiene que ser el mismo que el de la carpeta, el de gelo, Dolly es gelo, pero por motivos históricos, porque antes era de otra manera, pero bueno, realmente, lo que se importa, voy a crear una carpeta, se llama mi plugin, y dentro de mi plugin voy a crear mi plugin PHP, dentro de mi plugin PHP, abro PHP y meto mi cabecera, esta cabecera se llama, este plugin se llama mi plugin, vale, la URL no voy a poner, el autor es nilo velez, la dirección del autor tampoco lo voy a poner al mismo, bueno, esto tiene un montón de campos más que se pueden poner, pero a mí mismo vamos a pasarlo, versión, esto es una 01 y descripción mi plugin de ejemplo para Workup Chiclana 2020. Dime, ¿por qué no se cierra PHP y los archivos de... Porque no es necesario, y porque hay un, vamos, es una, porque es una medida de seguridad, te voy a explicar, es una cosa que es muy tonta, vale, la explico ahora, la explico luego, son 5 minutos, venga, vamos a ver, hay una cosa que tiene PHP y es que tú puedes dar salida de código o a los encabezados, vale, que son la información que le manda el servidor al navegador, antes de empezar a pintar nada, que son donde dice el navegador que está pidiendo el tipo de servidor, como tiene que manejar la cache y demás, y luego ya... Entonces, hay un error que es que si tú, después de haber empezado, o sea, tú vas mandando cabeceras y ya empiezas a mandar contenido, una vez que empiezas a mandar contenido, ya no puedo mandar cabeceras, con lo cual, si una vez que ya ha empezado a meter contenido, intento mandar una cabecera, va a dar un error de no se puede mandar cabeceras porque las cabeceras ya son enviadas, decir, oye, que ya has perdido la ocasión de mandar cabeceras, si yo pongo aquí un, yo hago esto, no pasa nada, pero si yo ahora, este archivo tiene que cargarse en la cabecera y después de esto se van a cargar cabeceras y por un accidente, yo hago esto, acabo de mandar un carácter de salto de página, es un Agilipollez, pero ahora ponte a encontrar donde demonios ha destacolado un espacio, que a lo mejor el espacio es que estabas trabajando en Windows y cuando lo has pasado al Inux, te ha metido un salto de página de más, ¿vale? Lo mismo, otra parecida es que siempre otra norma es que si yo pongo aquí, termino poniendo aquí código, ¿vale? Bueno, aquí porque es un exit, pero si yo pongo aquí lo que sea, una norma de seguridad también es que se pone siempre en espacio una línea en blanco al final, para que si utilizas un programa, un software de integración que junta varios ficheros que no se pueda montar una línea con otra, esos son buenas prácticas que también hay una página entera de buenas prácticas de código de WordPress. Bueno, estábamos, habíamos creado la carpeta MyPlugging, dentro de MyPlugging tenemos MyPlugging.php, le he puesto el nombre, le he puesto la inscripción, le he puesto el autor. Complicadísimo, ¿vale? Me voy a la página de plugins, vamos a dejar gelo, ¿vale? Por eso es el número 50 de sus instalaciones activas, y ya tengo aquí MyPlugging, wow. Tía, pero es que parece un plugin de verdad, ¿eh? No, no, pero es que además funciona como un plugin de verdad. Y activo el plugin, y este sí que no hace nada, ¿vale? Vale, pues yo tengo, vamos a activar Dolly, adiós Dolly, decir adiós a Dolly, adiós Dolly. Esto para hacer tiempo porque es galento, ¿vale? Venga, pues tenemos MyPlugging, entonces ¿de qué me sirve MyPlugging? Bueno, pues me sirve de que, mira, que todo lo que he hecho con el tema hijo, que es para nada, ¿vale? Entonces, no vamos a ir a los temas, voy a activar ya el 2017, ¿vale? El tema hijo, como no voy a hacer nada para organizar un tema hijo, pues mira, directamente detalles del tema, adiós. Ya no tengo tema hijo, ya tengo solamente mi 2017. Exactamente, me voy a los plugins instalados y tengo ya aquí MiPlugging, ¿vale? Entonces, ¿qué es lo que vamos a hacer? Lo mismo que había hecho con el tema hijo, lo voy a hacer directamente con el plugin. Que eso, bueno, pues yo tengo aquí el código MyPlugging. Vale, ya os he dicho que este es el código que tenéis para descargaros. Vale, pues me voy a copiar esto, ¿vale? Ahora ya entendéis este código, ¿verdad? Lo que está diciendo es que al gancho WPG, que hemos visto que es el que mete las cosas en el GDHTML, le voy a meter el HTML, el código verificación de V. Y ahora en el de content, o sea, en el contenido de las entradas, le voy a meter esta función. Y esta función, bueno, esto tiene, luego también hay miles de funciones condicionales como esta. Lo estoy diciendo, quiero que salga solamente si estás en el contenido, pero de una entrada individual y además que sea de tipo entrada. Que no me lo metas en las páginas, no me lo metas en los productos, solamente en las entradas. Entonces, lo que dice es, esta función lo que dice ya es, cuando tú recibas el contenido, metes el contenido dentro de una variable. Si estás dentro de una entrada individual de tipo entrada, me haces esto si no directamente devuelves el contenido tal cual. Y si sí que es una entrada, si es el contenido de una entrada individual, al contenido le vas a añadir este HTML, que es el que he metido antes. Vale, que es el del cafetito con el euro. Vale, yo recargo esto, recargo aquí. Aquí yo no veo absolutamente ningún cambio, pero sí me voy a Chiclana. Este vamos a hacerle, vale, si está con el he metido prioridad 1, porque si no se mete en mitad de todo el chorizo de código que hay en la cabecera de WordPress. Si le doy, me voy al código fuente. Acabo de inyectar contenido dentro del g de HTML, vale, esto es muy potente porque eso quiere decir que puedo meter cosas aquí sin tener que estar tocando el código de nadie. Y además, pues como podéis imaginar, aquí no sale porque estoy en un archivo, un archivo de entrada, pero si me meto en una entrada individual, que es lo que he dicho donde lo meto, pues en el contenido de la entrada me va a sacar todo el contenido de la entrada y después el HTML del café. Vale, esto que acabo de hacer es una auténtica barbaridad, barbaridad en el buen sentido, vale, o sea, esto es brutal. No es que ya, como he dicho, barbaridad otra cosa, no, una cualidad buena, vale, bien, esto es bien, lo otro es mal, vale. ¿Por qué es fantástico esto? Porque esto tiene una potencia increíble. Vale, no quiero guardar, vamos a quitar todo esto, vale, venga. Vamos a hacer una cosa para que os hagáis una idea de que esto de verdad es un plugin, vale. Me voy a plugin y aquí tengo la carpeta que he creado con mi plugin, vale, y voy a hacer simplemente esto. Lo voy a comprimir dentro de mi plugin.zip, vale, y este mi plugin.zip lo voy a copiar al escritorio. Ya tengo aquí, tengo aquí un archivo zip que dentro tiene el código de mi plugin, vale. ¿Para qué he hecho esto? Porque si ahora mismo me voy a plugin, esto he dicho que es un plugin de verdad. Es decir, este plugin ahora mismo, mientras que yo lo tengo activado, está haciendo cosas. Si yo por lo que sea en algún momento quiero que deje de hacer esas cosas, lo desactivo. Pero como además es un plugin de verdad, tengo todas las funciones que tiene WordPress para los plugins. Es decir, yo puedo coger este plugin y borrarlo. Oh Dios mío, Dios mío, borro a mi plugin. Pero es que como es un plugin de verdad, yo puedo decirle añadir nuevo. Yo quiero decirle subir plugin, elegir archivo, me voy al escritorio, cojo mi plugin, me instalo. Y se acaba de instalar como un plugin normal y corriente que me habrá descargado de cualquier tienda. Activo el plugin y vuelvo a tener mi plugin. ¿Esto qué quiere decir? Que yo, si por ejemplo, yo en mi agencia tenemos un plugin hecho, tenemos un montón, pero uno de los que tenemos hecho, lo que hace es que al escritorio de nuestros clientes le pone aquí el iconito de la agencia, en el login le pone el iconito de la agencia y le pone aquí un teléfono de si tienes algún problema, llámanos al número de teléfono, 902, tal, tal, tal. ¿Vale? ¿Por qué? Porque yo ese plugin ahora mismo, yo para mí, meteslo en toda la web no me cuesta nada. Yo lo instalo, lo instalo, lo instalo. Yo me dedico a hacer tiendas. Pues si ahora yo sé que todas las tiendas que trabajo en español le tengo que tocar algo a las facturas, pues yo sé que tengo mi plugin que es arreglar facturas. Si yo todos los clientes me piden que las variaciones de los productos sea precio, en vez de ponerme precio, de 240 a 500 euros, no, yo creo que pongas desde 500, de 240 euros, tengo un plugin que hace ese desde. Si no, pues podéis directamente haceros vuestro plugin de funcionalidades, que es lo que se recomienda que se haga, vas metiendo todos tus parches, tus parches los tienes todos comentado y según te va haciendo parche, descommenta lo que quieres. Así es como se trabaja con WordPress. ¿Y ese plugin que vosotros hacéis? ¿Lo subí al propósito o siempre me he entrado a ir para el año? Ese es el siguiente paso. Esto es un plugin de verdad, pero es un plugin de verdad para hospedarlo tú. WordPress tiene una cosa que es el directorio de plugins, que es donde te permiten, el decir oye que si tú eres un desarrollador y quieres compartir tu plugin con más gente, yo te doy un repositorio gratuito en el que la gente va a poder buscar tu plugin, cuña publicitaria y la gente va a poder descargarse de tu plugin y sobre todo que cuando tú actualices tu plugin se le va a actualizar a todo el mundo automáticamente. Vale, eso lo vamos a ver mañana en el Contributor. En el Contributor hay una mesa de plugins en el que se explica cuál es el proceso de poder, a partir de tu plugin que ya tienes en local y que funciona, cuáles son las reglas que pide WordPress para que ese plugin pueda estar en el repositorio de plugins de WordPress y que te lo aprueben y que la gente pueda traducirlo y cómo meterte en el ecosistema, pero eso es como ha dicho Jesús en otra guerra distinta. De todas maneras, con esto como podéis imaginar se ponen a hacer ya muchísimas cosas. Aquí tenéis el plugin handbook que es la guía de todas las buenas prácticas que hay que hacer para crear un plugin y también está la guía de cómo tienes que hacer para publicar un plugin en el repositorio, todas las normas que tienes que seguir y todas las cosas que no puedes hacer. Así que a partir de aquí, pues una vez que hemos visto cómo se hace un plugin, que ya hemos visto que la cosa más tonta del mundo, pues os podéis imaginar cuál es el siguiente paso, ¿no? Os toca hacer plugins. Ah, una cosita más. Os he dicho que os iba a explicar de dónde viene esa... ¿Esto tiene un volumen por aquí? Sí. ¿Por qué sí le doy al más baja? No le doy más. Más es menos. Menos es más, bueno pues. Bueno, pues vamos a ver. Vamos a ver lo que da esto. Bueno, pues os voy a explicar la historia de dónde viene Helo Dolly. ¿Por qué esto en principio no iba a ser un taller? ¿Ves una charla? Pero como Roberto me ha dicho, oye, tú en vez de una charla porque no es un taller, dice, pues yo tengo un taller, pero es que yo tenía ya preparado para la charla. Se le hace Roberto a todo el mundo. Helo Dolly cuenta la historia de Mrs. Dolly, una celestina viuda a la que conocemos repartiendo tarjetas de distro y siniestro. Lo mismo le busca marido al callo de tu hija que mueve acciones o que te saca de la cárcel, muy normal todo. Coja un tren que no le lleva a Chatanugas, no a Junkers, donde le espera a Mr. Valdeberger, el hombre más rico del pueblo, que le ha contratado para que le busque marido a su sobrina. La sobrina es un poco pánfila, pero ya tiene pretendiente un pintor que no le cae bien a su tío. Dolly les dice que vayan al Harmonia Garden y ganen el concurso de Polka para demostrarle a Mr. Valdebergen que se pueden valer ellos solos. Ah, y que le digan a Rudi que Dolly va a volver. Como es una comedia de enredo y Dolly es un aliante, se las apaña para rejuntar la prometida de Valdebergen y ya soy ayudante con los dos empleados de Valdeberger que se han ido a Nueva York reventando todas las latas de carne de pollo de la tienda para que apeste y tener que cerrar. A Valdebergen le hace creer que su prometida le pone los cuernos y le monto una cita con un putón a la que reconoce mientras que se pasea con un cochino en la carroza de los empacatadores de carne del desfile de la calle 14. Y para regocijo general, a todos los cita en Harmonia Gardens. Intermedio. Llevamos hora y cuarto de película y unos 20 numeritos musicales. Hablando de numeritos musicales, Dolly se marca uno a lo Gentel, pero en Corsé. Le pido una señala a su marido muerto para seguir adelante con su vida. Sí, en Corsé. Llegamos a Harmonia Gardens. Resulta que es un restaurante y sale de fiestas espectacular, servida por un ejército de camareros acrobatas dirigidos por Rudi. Todos emocionan mucho cuando se enteran de que Dolly va a volver, pero no sabemos por qué. Llegan todos los invitados y se lia parda y todo el mundo termina feliz y contento. Todo el mundo merece el putón ver venero del cochino y el señor Valdebergen, claro. Lo que ha estado hasta ahora es de relleno y que la verdadera historia es la de Dolly. Dolly llega a Harmonia Gardens tal que de esta guisa. Rudi y sus camareros la reciben tal que así y entre todos cantan tres versiones distintas de la canción Hello Dolly, una de las tres con el director de la orquesta, que casualmente es Louis Armstrong. Entre tanto número musical nos enteramos de que Dolly es una artista de Broadway que se ha retido de la vida pública cuando se murió su marido, pero parece ser que tanto número musical le ha sentado bien porque resulta que todos los enredos de la película son para llevarse al señor Valdebergen al huerto con un espíritu musical, boda y fin. Mira, vamos a hacer una cosa, ¿vale? No vamos a venir aquí. Vamos a poner esto en pantalla completa, ¿vale? Vamos a venir aquí. Me habéis dado las gracias. O sea, voy a dar las gracias a vosotros. Me habéis aplaudido.