Convertir imágenes PNG o JPG a WEBP, y viceversa, desde la línea de comandos
WebP es el formato estándar abierto más utilizado para servir imágenes comprimidas en web. Está desarrollado por Google. Casi cualquier framework o CMS puede generar imágenes en este formato a partir de formatos comprimidos como PNG o JPG así que raramente hay que hacerlo manualmente. Sin embargo hay veces que aún me hace falta, por ejemplo cuando hay que optimizar un sitio web que tiene unos años. En estos casos merece la pena hacerlo desde la línea de comandos: es la manera más rápida y además, como siempre ocurre con la línea de comandos, permite automatizar el proceso con un script de bash.
Google dice que las imágenes WebP lossless pesan un 26% menos que la versión PNG. WebP permite compresión lossless (sin perdida de datos para una eventual reconversión al formato original) y lossy (con perdida de datos pero mayor nivel de compresión).
Cómo subir archivos SVG al gestor de medios de WordPress
Habilitar la subida de archivos SVG al gestor de medios de WordPress es tan fácil como añadir cinco líneas de código al theme o plugin que se esté desarrollando. Sin embargo, verificar que el SVG que se está subiendo es seguro es algo más complicado: hay que analizar el código XML que conforma el archivo SVG en busca de código malicioso que una vez en el servidor podría crear una vulnerabilidad. Por esta razón es una buena idea usar el plugin Safe SVG, desarrollado y mantenido por la empresa 10up, que comprueba los archivos antes de añadirlos al gestor de medios usando la biblioteca SVG-sanitizer. Este plugin además optimiza los archivo SVG usando la biblioteca svgo.
Crear tipografías para web desde la línea de comandos: generar woff, woff2 y eot a partir ttf
Borrar miles de comentarios spam en WordPress con wp-cli
Sistema seguro de registro y conexión de usuarios en PHP: password_hash, password_verify, cookie de sesión y el concepto de pepper
La mayoría de las veces que se necesita un sistema de usuarios, se usa el del CMS o framework que se esté usando para desarrollar. Para las pocas veces que no sea el caso, o que sencillamente se quiera aprender cómo funciona un sistema de registro e inicio de sesión de usuarios a más bajo nivel, aquí algunas pistas de cómo hacerlo de manera segura usando PHP.
En este caso lo voy a hacer usando las funciones password_hash y password_verify.
Gestionar WordPress desde la línea de comandos con wp-cli
wp-cli es una interfaz de línea de comandos para WordPress. Permite hacer multitud de operaciones de administración y mantenimiento de una instalación de WordPress. Por un lado agiliza estas operaciones y por otro permite automatizarlas, ejecutándolas en modo no interactivo usando cron y un script de bash por ejemplo.
Aquí recojo cómo llevar a cabo tareas básicas con WordPress usando wp-cli. Para cualquier otro uso se puede consultar la documentación oficial de wp-cli.
Pequeña guía de desarrollo rápido y optimizado de un theme de WordPress usando un starter theme, npm, gulp y sass
La mayor parte de los sitios web que funcionan con WordPress pueden hacerlo eligiendo un theme del repositorio oficial o de cualquier otro y personalizándolo con las opciones disponibles en el panel de control. Incluso si se necesita desarrollar un theme hoy día es buena idea no empezar de cero, sino usando una estructura básica, genérica ya desarrollada. Por otro lado es recomendable usar ciertas herramientas que produzcan un theme optimizado, que cargue lo más rápido posible, que se adapte a todo tipo de dispositivos. Esto pasa, además de por estructurar bien la información para minimizar las consultas a base de datos, por producir archivos CSS, JS minimizados e imágenes comprimidas y optimizadas que agilicen la carga. Un buen starter theme para WordPress facilita ambas cosas: una estructura genérica sobre la que empezar a construir rápidamente, y un entorno de desarrollo que permita automatizar las tareas de optimización e ir probando los avances ágilmente.
En este post comparto mi manera de trabajar: qué starter theme utilizo últimamente y cuál es el flujo de trabajo con él.