Workflow para desarrollar con WordPress

Hay muchas formas de desarrollar con WordPress, voy a especificar aquí la que yo uso desde hace un tiempo, me permite desarrollar en local y sincronizar con el servidor de staging/producción cuando los cambios están testeados y validados.

Estas son todas las herramientas que uso para el flujo de trabajo:

No voy a entrar en el detalle de instalación de cada herramienta, en las páginas oficiales podéis encontrar las instrucciones para cada sistema operativo, si alguien se queda con alguna duda puede preguntar en los comentarios.

Imaginemos que voy a empezar un nuevo proyecto, en este ejemplo solo voy a contemplar el desarrollo en local y deploy a producción, sin contar con un servidor de staging, pero veremos que añadirlo es cuestión de segundos.

Lo primero que haremos será crear el directorio del proyecto

mkdir myproject
cd myproject/

A continuación vamos a inciar valet solo para este proyecto, esto es:

valet link

A partir de ahora, podremos acceder a la dirección http://myproject.dev desde el navegador. Lo siguiente que tenemos que hacer es instalar y configurar WordPress, para ello vamos a necesitar crear una base de datos vacía, yo uso Sequel Pro o la linea de comandos para esto, no entro en detalle por que es algo que si desarrollas con WordPress te resultará más que familiar. Vamos con la instalación de WordPress, para ello ejecutamos el siguiente comando:

wp core download

Esto descargará la ultima versión del core de WordPress, puedes usar wp-cli para configurar e instalar WordPress o después de que se haya descargado acceder a http://myproject.dev y continuar el proceso de instalación paso a paso de WordPress.

Una vez instalado, vamos a hacer uso de Wordmove para el deployment, tanto de archivos como de base de datos, para ello ejecuta el siguiente comando:

wordmove init

Esto generará un archivo Movefile en la raiz de tu directorio, en el tendrás algo parecido a esto:

local:
  vhost: "http://myproject.dev/"
  wordpress_path: "/ruta/hasta/myproject" # use an absolute path here
  database:
    name: "nombre_db_local
    user: "usuario_db_local"
    password: "***********"
    host: "127.0.0.1"
production:
  vhost: "http://myproject.com/"
  wordpress_path: "/ruta/completa/de/tu/servidor" # use an absolute path here
  database:
    name: "nombre_db_servidor"
    user: "usuario_db_servidor"
    password: "********"
    host: "host_db"
  exclude:
    - ".git/"
    - ".gitignore"
    - ".sass-cache/"
    - "node_modules/"
    - "bin/"
    - "tmp/*"
    - "Gemfile*"
    - "Movefile"
    - "wp-config.php"
    - "wp-content/*.sql"
  ssh:
    host: "tu_host"
    user: "tu_usuario"
    password: "tu_password" # password is optional, will use public keys if available.

Como veis, el sistema que usa Wordmove para hacer el deploy es vía SSH, aunque si tu servidor no lo permite, aún puedes usar la sincronización vía FTP, en la página oficial encontrarás cómo hacerlo.

Una vez configurado nuestro archivo Movefile, tan solo tendremos que ejecutar los comandos wordmove <pull|push>, podéis ver la ayuda para ver que opciones hay, pero os pongo los dos que yo más utilizo:

Para traer (pull) del servidor de producción los archivos de la carpeta uploads y la base de datos, util cuando quieres una replica exacta en local de lo que hay en el servidor:

wordmove pull -ud

Nota: cuando te “traes” la base de datos, es conveniente que revises que el prefijo de tablas que estés usando en local y producción sea el mismo, para ello edita wp-config.php en tu versión en local para hacerlos coincidir, además yo suelo añadir en el wp-config.php local las siguientes lineas para que no haya problemas con la URL:

define('WP_HOME', 'http://myproject.dev/');
define('WP_SITEURL', 'http://myproject.dev/');

Para mandar (push) los cambios que hayas hecho en los archivos de plugins y themes en local, esto solo sincroniza los archivos que han cambiado:

wordmove push -pt

Es muy sencillo trabajar con multiples entornos, no solo local y producción, basta con agregar la configuración al archivo Movefile y especificar el entorno al ejecutar el comando. Aquí tienes más información.

Por último, aunque es opcional también es recomendable, por eso incluía Git en las herramientas de trabajo, si es un theme lo que estoy desarrollando, lo habitual sería crear un repositorio git en el directorio correspondiente al theme, por ejemplo myproject/wp-content/themes/mytheme/ para mantener el control de versiones del código.

Suelo usar valet por su simpleza y por que en la mayoría de proyectos no necesito una configuración del lado del servidor concreta, si necesitas instalar más cosas, te recomiendo echar un vistazo a las soluciones que hay usando docker o vagrant.

 

Renfe es un engaño

Post de pataleta, como a mí me gusta. Básicamente todo lo que me ha pasado lo podéis ver con una simple búsqueda de “renfe web” en google. O lo explica muy bien Sergio en “El infierno de la web de Renfe“.

Hoy quería comprar cuatro billetes de AVE Málaga-Madrid, es para dentro de un mes, por lo que la tarifa web aparece en más trenes de lo habitual, tienen que echar en anzuelo. Te dispones a comprar, seleccionas los billetes, compruebas el total, todos a ~30€. A continuación rellenas el formulario de compra, número de tarjeta de crédito incluido (acuérdate de desactivar la casilla en la que permites que renfe te spamee de por vida, sin vuelta atrás ¿Esto por qué no está prohibido?).

La página te redirige a la entidad bancaria que se encargará del pago, confirmas el pago y de repente vuelves a la web de renfe, al mismo punto donde estabas antes pero con un mensaje que dice algo como “No hay plazas suficientes para la tarifa seleccionada”. Este momento es único, tengo que llegar hasta aquí (confirmación del pago con la entidad bancaria correspondiente) para que renfe me diga que no hay billetes suficientes. ¿Qué tipo de gilipolllas ha mandado hacer esto así? Esto es reirse de tus propios clientes, pero no hay competencia, no problema.

A continuación, llamo al número de teléfono (902157507) que me indica en la web, para que me expliquen como tengo que comprar entonces los billetes. Me atiende un señor y me dice que debo llamar a otro número (902240202) y que allí me dirán cuantas plazas con tarifa web hay en cada tren. Llamo y ya os podéis imaginar, que no, que allí no me lo pueden decir, que si llamo al numero anterior (902157507) están obligados a decirme cuantas plazas tarifa web quedan disponibles (palabras textuales). Vuelvo a llamar al primero, y me dicen que no, que no me pueden dar esa información y que si quiero reclame a venta-internet@renfe.es (ojalá os coma el SPAM).

Conclusión: La única forma de sacar billetes con tarifa web para el AVE, es entrar con tu sistema Windows + Internet Explorer (sí, así como lo lees) rellenar hasta tres formularios que recargan la página por completo cada vez que seleccionas algo en una lista desplegable, confirmar el pago con tarjeta, y cruzar los dedos para que te toque. Si no ha habido suerte tendrás que volver a empezar, otros tres formularios, y ahora intenta empezar a combinar tarifas web, con tarifas estrellas, o tarifas normales. A ver si en una de las combinaciones tienes suerte y das con la tecla. O eso, o buscas un vuelo barato y te jodes con los aeropuertos.

Saco varias cosas en claro, los directivos de Renfe son unos incompetentes enfocando así su modelo de precios en billetes de AVE (el mismo billete puede variar hasta en 40 euros dependiendo de como, cuando y donde lo compres). Los técnicos Renfe no tienen ni idea, no han podido hacerlo peor (incompatibilidad con TODOS – 1 navegadores, recargas continuas, validaciones penosas, etc). Y la última, las personas que se dedican a coger el teléfono tienen una formación sobre como funciona su compañía nula, desconocimiento total del procedimiento. Es patético y lo peor es que a veces tenemos que pasar por el aro.

openbank, no se puede hacer peor.

Hace tiempo que pensé en escribir un post sobre openbank, un banco que opera únicamente a través de internet y que a pesar de tener cosas buenas, tiene muchísimo que mejorar.

Hace tiempo hubiese destacado ciertos aspectos negativos como la operativa que tienen con las claves de acceso, para identificarte tienes que elegir una clave numérica de tan solo cuatro dígitos (esto me parece increíble, por lo menos, que no me limiten a la hora de elegir mi clave). Otro punto negativo es que si usas mal la clave 3 veces (ya sea por teléfono o en internet, acumulable) te bloquean la cuenta, sin ni tan siquiera avisarte de que está bloqueada.

Pero hoy me gustaría reseñar otro tema, que me ha levantado la curiosidad lo que ha dicho Sonia Blanco, a través de twitter. Y es que openbank, hace poco ha renovado su página web para clientes.

Al principio cuando empecé siendo cliente de openbank pensé que para ser un banco que solo opera por internet, tenían una página web que daba pena. Casi la de cualquier banco o caja de ahorro le da unas cuantas vueltas.

Sin embargo con la nueva página se han lucido. Está hecha con frames, por supuesto, y no se ve bien en ningún navegador/sistema operativo que no sea Internet Explorer sobre Windows (qué por lo visto tampoco se ve demasiado bien).

Por ejemplo, cuando intentas mostrar los movimientos que has realizado en la cuenta, no puedes ver el importe.

Movimientos

Por no hablar de los numerosos errores que nos encontramos si intentamos, por ejemplo, consultar las ordenes de traspaso. Sin hacer ninguna búsqueda.

Traspaso

Pues nada, da vergüenza que un banco no haga estas cosas bien, ya no estamos hablando de diseñar a 800×600, por lo menos que funcione. Lo dicho, si tienes pensado cambiar de banco, openbank por ahora no estaría entre mis opciones.

e-dac.es mi nueva página personal

e-dac.es es la nueva página personal de Daniel Aguilar Castro (yo, el que escribe).

Hacía tiempo que quería crearme una pagina personal, de nombre corto y sencillísima, en la que agrupar todo, o casi todo lo que tengo desperdigado por internet. Por otro lado llevaba años sin practicar con webs y css, por lo tanto la cosa se ponía difícil.

Hace más o menos un mes, compré el dominio www.e-dac.es y así me obligaba a hacer ya algo. Como veis, la página es bastante sencillita, pero tampoco le he dedicado más de 4 horas.

Por supuesto, el css y html del sitio, están disponibles para quien quiera descargarlo y reutilizarlo, bajo una licencia creativecommons.

Ahora me toca intentar posicionar la página un poquito (tampoco quiero que se convierta en la principal). Me va a venir bien empezar con ese dominio desde cero. Espero que os guste!