 Bueno, pues aquí tenemos a Marta, una chica que es de Santander, pero viene desde Huelva, a contarnos cómo están las buenas prácticas con las funciones de Wordpress, así que os dejo con ella un aplauso. Buenas, en primer lugar quería dar las gracias a la organización, que es un currazo hacer todo esto, y nada, un aplauso, por favor, a la organización. También quería dar un empuje a las desarrolladoras, que se animen más a marcharlas, que somos pocas y hacen falta en alguna Wordpress. Y ahora sí, vamos a empezar, bueno, me presento, soy Marta, desarrolladora en Wordpress del 2007, 2008, y también hago aplicaciones de móvil en Android, tengo un humilde estudio de diseño y de desarrollo en Huelva, en el que ayudamos a realizar las webs a pymes y a autónomos. Empezamos, ¿vale? ¿Qué son las funciones en Wordpress? ¿Qué son? Tanto que decimos, ¿vale? Esto es mi definición, no es ni de la RAE, ni de la Wikipedia, ni nada, son etiquetas creadas con alguna funcionalidad concreta, ¿vale? También vale para cualquier función en desarrollo web o en desarrollo móvil, ¿vale? No hace falta saber si eras de memoria, porque hay infinitas y es imposible, ¿vale? La vez que vayáis desarrollando algo, empezaréis a coger soltura y iráis, sabiendo si eras de memoria, ¿vale? No hace falta. La documentación siempre tiene que estar ahí y eso es una parte, ¿vale? Esto es una captura de algunas de las, se ve un poco mal, pero bueno, algunas de las funciones que tiene Wordpress clasificadas por categorías, ¿vale? El codex de Wordpress, ¿vale? Esto es la biblia de todo desarrollador. Cada vez que desarrollamos un plugin, un ZIM o lo que sea, de Wordpress, por favor, tener a mano el codex, ¿vale? Es súper importante. Si conocimientos necesitamos para implementar cualquier función o cualquier plugin o ZIM o lo que sea en Wordpress, ¿vale? Mínimo para desarrollar cualquier web ya simplemente para desarrollar, necesitamos una base mínima de HTML5, CSS3, PHP o JavaScript, ¿vale? Esencial. No hace falta que seáis expertos, ni guru, yo tampoco lo soy, pero bueno, un mínimo, por lo menos hay que saber, ¿vale? Las funcionalidades en Wordpress, que es una funcionalidad en Wordpress. Es una función externa que no viene en el core de Wordpress, ¿vale? En la medida de lo posible, por favor, las funcionalidades nunca, nunca, nunca van en el ZIM, por favor, ¿vale? ¿Qué pasa si metemos funcionalidades en el ZIM? Que como dijo Juanca antes, cada año queremos cambiar de ZIM y la funcionalidad se nos va a tomar vientos, mejor dicho, ¿vale? Porque si no, hay que pegarlo otra vez y es una locura y una muy mala práctica, ¿vale? Siempre las funcionalidades en los plugins, ¿vale? Entonces, existen los plugins en Wordpress, ¿vale? Para meter todas las funciones externas, ahí, ¿vale? Esto es importantísimo. No reinventéis nada, ¿vale? Buscar, investigar, meteros en GitHub, que hay un montón de librerías, de plugins, y de lo que haga falta, ¿vale? Siempre o casi siempre va a haber algo ya reinventado. Si necesitáis algo que nos cumpla, cogerlo, lo digitáis, lo desarrolláis, lo abrís, lo estropeáis, que eso siempre pasa también. Y es muy importante, ¿vale? Ajasis aprende, eso es, ¿vale? Utilizar, custom post-hits o metaboxes, ¿vale? ¿Qué pasa? Es tan, ¿vale? Cuando hay una estructura de datos que no vienen en el CIM, ¿sabes? Hay que utilizar custom post-hits, ¿vale? Y además, es súper sencillo, ¿vale? Ahora os explicaré cómo es, ¿vale? La planificación, cuando queramos una función, ¿vale? Hay que planificarlo, ¿vale? Siempre hay que hacer un análisis, ¿vale? Para ver qué es lo que necesita nuestro plugin, nuestra función o nuestro CIM, ¿vale? El análisis es muy importante, ver qué necesitamos, qué es esto, qué va a hacer, qué la igual, ¿vale? Flujo de navegación, esto yo lo hago siempre porque me parece súper útil para el cliente, ¿vale? Un flujo de navegación donde enseñemos al cliente qué es lo que va a hacer esa función. Si pinchas en este botón, ¿a dónde va a ir? ¿Qué va a hacer, ¿vale? Objetivo del plugin, ¿vale? Requisitos mínimos, lo que decían antes por ahí, ¿vale? Si la versión de PHP, que sea por lo menos 7, ¿vale? MySQL, el servidor, ¿vale? Importante, etcétera. La idea principal, ¿qué idea va a tener el plugin para qué va a servir? ¿Qué nos va a facilitar? ¿Qué necesidades tiene? Specificaciones, lo mismo, ¿vale? Hay unas especificaciones que le tenemos que pedir al cliente, ¿vale? Para que sepamos qué función principal debe tener ese plugin, por ejemplo. Estabilidad, que sea estable, que no lo activemos y se vaya a tomar vientos el CIM, ¿vale? Que por lo menos que sea estable, ¿vale? Y actualizaciones, tenemos que empezar en esas actualizaciones que no haya agujeros de seguridad cada mes o que se actualice dejen cuando, ¿vale? Que haya mejoras si vemos que hay bugs, corregirlos, etcétera. Ahora entramos en el tema de diseño y experiencia de usuario, ¿vale? Esto no solo para las webs ni para los móviles, sino también es súper útil para los programas, los plugins y las funciones, que sea práctico, ¿vale? Esto es súper importante también, que no sea un plugin que tengamos que buscar y que no nos sirva para nada. Intuitivo, ¿vale? Que no tengamos que dar cuatro vueltas de campana, dar una vuelta alrededor y que no sepamos utilizar lo que el cliente pueda hacer súper fácil, ¿vale? Intuitivo. Arable a la vista también es muy importante. Que los desarrolladores cometemos muchos fallos de diseño, ¿vale? Porque no somos diseñadores, ¿vale? Entonces que no haya colores fosforitos por un lado, ni haya iconos de repente por otro lado, ¿vale? Que esté visible, ¿vale? Escabilidad. La escabilidad tiene que ser uno de los factores más importantes, ¿vale? Que sea escalable para mí en cualquier función es lo más importante, ¿vale? ¿Qué tipo de proyecto es, ¿vale? Aquí tenemos que ver si es un proyecto que va a ser muy grande o que va a ser pequeño y no lo vamos a escabilizar, ¿vale? ¿Es mejor hacer algo grande desde principio? Nunca, ¿vale? Siempre hacer algo pequeño, ¿vale? Pero pensar en algo que puede crecer, ¿vale? Que no nos quedemos cortos y que podamos extenderlo cuando nosotros quedamos. ¿Vale? Estoy muy rápido, ¿no? Yo creo. Vale. Los ML plugins, ¿vale? Que antes ha hablado Fernando de todo esto, ¿vale? Los plugins imprescindibles. ¿Qué son, ¿vale? Los plugins imprescindibles son los plugins que no se pueden ni activar ni desactivar, ¿vale? Eso lo hemos visto antes con Fernando. Y bueno, está bastante bien, ¿sabes? ¿Para qué sirven? Por ejemplo, lo utilizo mucho para esos clientes que tienen permisos de administración pero que no quiero que toquen nada, ¿vale? Es bastante útil porque así no pueden ni activar ni desactivar nada. Si no entran en código, no tengo problema. ¿Cómo implementamos todo esto? Creamos una carpeta, un directorio, ML plugins en la carpeta de VPContent, ¿vale? Eso es lo primero que hay que hacer. Y luego subimos los archivos PHP, ¿vale? Todos los archivos PHP de ML plugins, entre adentro, se activan automáticamente. Lo que os he dicho antes, ¿vale? Se activan automáticamente y no hace falta ni desactivar ni activar ningún plugin, ¿vale? Ahí está, ¿vale? Ahí he hecho un ejemplo, he creado la carpeta ML plugins y dentro he hecho un custom login, ¿vale? Una personalización de login, ¿vale? Esto se ve fatal, ¿vale? Esto es un cliente que tuve que necesitaba una estructura de datos en un custom post-eye, ¿vale? Le creé un custom post-eye de casos de éxito, ¿vale? Que no encajaba ni con las entradas del blog, ni en páginas, ni en tasonomías, ni en nada. Entonces, le creé el CPT y se lo metí como MU plugin, ¿vale? Ahí se activó. Buenas prácticas. Pírate. Ahí está un poco de agua. Prefijos a las funciones, por favor, siempre prefijos que tengan que ver con la función, ¿vale? Hay gente que se inventa hiperfijos que no tiene nada que ver y luego a la hora de pasar ese proyecto a otra persona, es muy complicado. Por favor, nada de mayúsculas, ¿vale? Esto también en cualquier lenguaje de programación da miedo, ¿vale? Que haya mayúsculas. Codificación que esté codificado en UTF-8, ¿vale? Que es la codificación de WordPress, ¿vale? Valida el código, ¿vale? Cuando hacemos cualquier función o cualquier proyecto o plugin o theme o lo que sea o widget, hay que validarlo, ¿vale? Hay unos estándares que nos dicen algunas prácticas, hay que revisarlo. Utilizar, lo que os he dicho antes también, ¿vale? Utilizar siempre custom post types, más metaboxes, ¿vale? Esto también es, hay muchas veces que no hace falta tener ni entradas, ni páginas, ni muchas cosas de estas, ¿vale? Entonces, siempre es recomendable utilizar los custom post types. Custom files, metaboxes, lo que haga falta. Testing, ¿vale? Con Fernando hemos aprendido bastante antes de testing, ¿vale? Hay que testear todo lo que hagamos, ¿vale? Es importante testear para que los haya un buen resultado de la función, del plugin, etcétera. Documentación, documentar el código siempre. Porque nunca sabemos quién va a heredar ese proyecto, ¿vale? Esto también es muy importante y todo, ¿verdad? Pero esto para mí es lo más importante, ¿vale? Documentarlo porque después viene un desarrollador nuevo y no sabe qué habéis hecho y al final hay que hacerlo de nuevo y el cliente se caga, ¿vale? Y nada, eso es todo. Tratemos bien a WordPress porque nos da mucho, por favor. Así que nada, ya está. ¿Alguna pregunta para Marta? Has hablado de los MOO plugin. No los conocía, no me ha dicho. Eso se actualiza solo. O sea, eso lo metes tú y tú lo cambias y tú lo mueves. Eso es, lo metes tú, ¿vale? Tú lo que haces es crearte la carpeta, ¿vale? Y dentro de la carpeta te creas el punto PHP, ¿vale? Y ahí te creas todo lo que quieras. ¿Puedes saber uno o varios o lo que quieras? ¿Y puedes, por ejemplo, meter un plugin que sea normal dentro de esa carpeta y se vuelve ya MOO plugin o no? Pues eso yo nunca lo he probado, nunca lo he dicho. O sea, hay que desarrollarlo específico. Yo, todos los que hago los hago yo desde ahí, ¿vale? Gracias. Hola, Marta. Muchas gracias. Quería comentarte, he visto que en una diapositiva que has puesto dentro de la carpeta de MOO plugin sabía una carpeta IMG. Creía que no se podían meter carpetas en la carpeta de MOO plugin. Sí, sí se pueden. O sea, ahí lo que hice fue crear un... un... un... a MOO plugin de... para quitar el logo de WordPress del login y poner otra imagen, ¿vale? Entonces, lo que hice fue un IMG, puse la ruta y el PHP, ¿vale? Sí, sí se puede poner carpetas. Vale, gracias. ¿Alguna pregunta más para Marta? ¿Nadie más anima? Bueno, pues un fuerte aplauso para ella. Ya estoy bien, ya.