Migrar WordPress de Bluehost a AWS Lightsail

Como comentaba en mi último post, hace unos días terminé de migrar mi blog en WordPress de Bluehost a AWS Lightsail.

Aunque no es tan simple como un «siguiente-siguiente-siguiente», siguiendo algunos detalles clave, se puede completar en unas pocas horas. Estos son los pasos a seguir:

      • Crear una instancia en Lightsail, por ejemplo en Linux, y seleccionar la instalación de WordPress.
      • Una vez creada la instancia, crear una IP fija en vez de la IP dinámica que se asigna por defecto.
      • En Bluehost, instalar el plugin «All-in-One WP Migration«. Lo utilizaremos para realizar una copia de todos los posts, archivos, imágenes, configuraciones, plugins, etc.
      • Crear una copia del contenido de WordPress en Bluehost utilizando el plugin anterior. El archivo tenemos que guardarlo en nuestro ordenador.
      • Ir al WordPress que hemos instalado en Lightsail e instalar «All-in-One WP Migration».
      • Asegurar que hemos creado en el WP de Lightsail los usuarios que utilizaremos posteriormente.
      • Importar el archivo de copia que hemos guardado en nuestro ordenador anteriormente. Probablemente tengamos que descargarnos una extensión del plugin (gratuita) para poder importar archivos grandes.
      • Comprobar con la IP fija de la instancia de Lightsail que todo funciona correctamente, tanto a nivel de lectura como de administrador de WP.
      • Iniciar la migración del dominio desde Bluehost utilizando Route53. Este paso puede durar algunos días.
      • Mientras esperamos que Bluehost autorice el movimiento del dominio, crear las zonas DNS que queramos utilizar en Route53.
      • Una vez que ha finalizado el movimiento del dominio, tenemos que instalar un certificado de seguridad para habilitar HTTPS. Se puede hacer fácilmente a través de un script de Bitnami. Es gratuito.

Y ya está. Algunos de los pasos son algo complejos pero hay mucha información a través de Bitnami por lo que no es excesivamente complicado. Los dos pasos más delicados son la exportación e importación de datos de WP y la transferencia del dominio.

Recuperar Usuarios y Contraseñas en WordPress

La mejor opción cuando has perdido el nombre de usuario, la contraseña y el correo electrónico de tu usuario en WordPress es acceder a través de línea de comando. Para ello necesitas tener acceso al servidor donde está instalada la aplicación.

WP-CLI es la interfaz por línea de comando de WordPress y a través de ella es posible realizar multitud de tareas. Para recuperar usuarios y contraseñas tenemos que comenzar con:

$ wp user list

Con ella accederemos al listado de usuarios de nuestra instalación en WordPress junto con sus permisos. Una vez hemos identificado el ID del usuario que queremos recuperar tenemos que utilizar la siguiente instrucción:

$ wp user update 1 --user_pass=newpassword

donde «1» es el ID del usuario y «newpassword» es la contraseña que queremos asignarle.

La forma en la que tenemos que acceder a la línea de comandos es diferente dependiendo del sistema operativo que utilicemos. Por ejemplo, en Windows 10, tenemos que pulsar la tecla de Windows+R y ejecutar la aplicación «cmd».

Google Sheets en WordPress

Por fin he cambiado el sistema de publicación del listado y estadísticas de países visitados, carreras disputadas y libros leídos de mi blog personal que hasta este momento eran texto plano editado a mano.

He traspasado todos los datos en forma tabulada a Google Sheets y de ahí he generado con la opción «Publish to the web» el código embebido que he pegado en la página de wordpress.

La diferencia entre el código que ofrece Google y lo que últimamente he publicado es básicamente este conjunto de atributos: Width y Heigth para definir el tamaño del iframe y Frameborder para quitar el borde que viene por defecto. En este caso, además, he modificado el atributo Range que no pertenece al iframe sino al código que genera Google Sheets.

<figure><figure><figure><iframe src="https://docs.google.com/spreadsheets/d/e/2PACX-1vQhJB-4sS4wAbWYxRn6e1qrAxshUUWyUF8jeMwdsbKzi8sRlyhcblJNTHDggyGxLI6O65UdK4jy8gC4b7/pubhtml?gid=237186781&single=true&widget=true&headers=false&range=A1:E500" width="1000" height="8000" frameborder=0></iframe></figure></figure></figure>

Al final, este ha sido el código que he insertado como HTML en la entrada de WordPress y que nos da mucha más flexibilidad que la normal función de tablas o de texto formateado que viene estándar con la plataforma.

Como traducir una plantilla de WordPress

En la galería de plantillas de WordPress hay miles de opciones pero muy pocas tienen soporte para español. Sin embargo, crear nuestro propio fichero de traducciones es muy sencillo:

  1. Descárgate el archivo «NOMBRE_DE_PLANTILLA.POT» en el directorio de idiomas de la plantilla que nos hayamos descargado (normalmente en «wp-contents>themes>NOMBRE_DE_PLANTILLA>languages>»).
  2. Necesitaremos una aplicación de traducción que nos instalaremos en nuestro ordenador local: Poedit.
  3. Abrimos con el Poedit el archivo .POT y creamos un nuevo archivo para español. Automáticamente se creará un archivo «es_ES.po».
  4. Tenemos ahora que traducir con Poedit todas las frases que aparecen en la aplicación o las que creamos que vamos a utilizar.
  5. Una vez que hayamos terminado tenemos que generar el archivo «es_ES.mo» yendo a «Archivo>Compilar en MO…» en el menú superior.
  6. Esto nos generará el archivo compilado MO que ya podremos subir de nuevo al directorio «wp-contents>themes>NOMBRE_DE_PLANTILLA>languages>».
  7. Por último solo queda activar el nuevo idioma yendo al menú de WordPress en «Ajustes>Generales» y seleccionar el idioma Español.

Y listo. Nuesto blog ya estará en español.

Quitar blancos en Style Outlet

Me estoy preparando para volver con Gadgets para Correr y la primera tarea que me he planteado es la de cambiar la plantilla de WordPress. Después de mucho buscar la elegida ha sido Style Outlet por varias razones (buscador, sencillez, posts completos en página principal y sidebar claro) aunque había algo que no me gustaba: demasiado espacio en blanco entre el header y el título del post en la home page.

Después de volverme loco intentado reducirlos, con la ayuda de Laura lo he conseguido finalmente.

Básicamente hay que modificar el «Style.css» yendo dentro de WordPress a Appearance>Editor y pulsando sobre el theme file «Stylesheet» en el menú de la derecha, buscar una línea donde pone «.home.blog .site-content {» y cambiar el valor de «padding-top: 100px;}» para poner la cantidad exacta de blancos que queramos. En mi caso lo he dejado a 10px.

Archivo CSS de Style Outlet
Archivo CSS de Style Outlet

De esta forma, las dos líneas de código CSS quedan así:

.home.blog .site-content {
padding-top: 10px;}

Solo nos falta pues guardar el archivo pulsando sobre el botón azul «Update file» y ya está listo.

VaultPress para WordPress

Desde hace unos días estoy utilizando VaultPress, la aplicación de backup automático para WordPress de la que estoy ciertamente contento y que viene con Jetpack.

VaultPress
VaultPress

Por tan solo 39$ al año, VaultPress realiza un backup diario asegurando la recuperación de toda la aplicación, plantillas, personalizaciones y contenido de WordPress.

VaultPress desde WordPress.com
VaultPress desde WordPress.com

La interfaz es bastante sencilla y se puede acceder directamente desde el escritorio de tu WordPress o desde wordpress.com en el caso de que tú instancia esté inaccesible o haya desaparecido (en cuyo caso necesitarás restaurar la última copia realizada por VaultPress).

Quitar blancos en la cabecera de Twenty Sixteen

Uno de los problemas de la plantilla Twenty Sixteen de WordPress es la cantidad de blancos en el header. La forma más sencilla de quitarlos, aunque no la más purista (debería estar en el CSS), consiste en abrir el archivo «header.php», buscar <header id=»masthead» class=»site-header» role=»banner»> y añadir el espaciado (padding) dejando la línea de código como <header id=»masthead» class=»site-header» role=»banner» style=»
padding-top: 10px; padding-bottom: 15px»>.

En este caso he dejado 10 píxeles antes del título y 15 después del menú.

El plugin de Affiliate Window

Después de más de un año y medio en blanco he vuelto con Gadgets para Correr, el que un día fue el blog de running más importante de España con más de 600.000 visitas al mes.

Y como no, también he retomado mi antigua cuenta de afiliados en Affiliate Window (AW), comprada por Zanox hace unos años, y me he quedado maravillado con las mejoras que el servicio ha experimentado en menos de 2 años. Lo más interesante de todo es la nueva opción que te permite afiliar un link sin tener que montarlo manualmente o yendo a la página de AW.

El mecanismo es muy sencillo, solo tienes que añadir un trozo de código HTML en el footer del blog y automáticamente los links a productos promocionales son capturados con el código correcto de tu cuenta (NNNNNN):

wp_enqueue_script('convert-a-link', 'https://www.dwin2.com/pub.NNNNNN.min.js', array(), false, true);

Y lo mejor de todo es que hay un plugin en WordPress que lo hace por ti y así no hace falta modificar el código HTML del footer. Es muy importante que no lo descarguemos de ningún sitio que no sea la web de AW porque tiene que estar personalizado con nuestro identificador de cuenta. Las instrucciones detalladas están aquí.

Con esta novedad, creo que puedo ahorrar unos 5 minutos por post.

Problemas de Acentos en los Feeds RSS

Después de la migración de WordPress 2.7, todo parecía funcionar bien excepto los acentos en los lectores de feeds o al menos en MS Reader que es el que uso. Después de leer un poco todo lo que hay por ahí y no encontrar nada provechoso, descubrí Feed Validator que analiza la estructura feed que genera el sitio y vi que se estaba produciendo un error en el fichero XML que generaba.

Concretamente, la primera línea aparecía en blanco dando un error de «Blank line before XML declaration». Es decir, que en la segunda línea aparecía lo que debería estar en la primera y que era «<?xml version=»1.0″ encoding=»UTF-8»?>. Sin saber mucho, lo de «encoding» y lo de «utf-8» me suena a que si no está bien puesto igual no codifica bien los caracteres por lo que lo primero que tocaba hacer era eliminar esa línea en blanco. La tarea no parecía fácil porque ese XML se genera dinámicamente y la solución que se propone es patearse todos los ficheros php hasta encontrar líneas en blanco fuera de los tags de inicio y fin (<?php … ?>).

Puestos manos a la obra encontré en el fichero wp-config.php tres líneas en blanco al final del fichero… recordé que cuando migré de versión copié y pegué algunas líneas a mano y no le presté mucho atención a los blancos.

Una vez eliminadas estas tres líneas al final de este fichero, he vuelto a ejecutar Feed Validator y ya me ha dado un «Congratulations: This is a valid RSS feed». Ahora sólo queda probar si en MS Reader vuelve a funcionar, y claro, como que para hacerlo tengo que publicar un post, he decidido escribir este que ya se que ha sido un poco paliza…

Migrar WordPress de 2.3.2 a 2.7

Después de unas 5 horas, ya he terminado de migrar mi blog de WordPress 2.3.2 a la versión 2.7… y parece que todo funciona.

He comenzado migrando de la 2.3.2 a la 2.5, porqué pasar directamente a la 2.7 quizás era excesivo. Por Internet hay un montón de manuales explicando como hacerlo. Posteriormente he migrado de la 2.5 a la 2.7. Los únicos temas un poco críticos han sido los plugins, que también han tenido que ser migrados y en especial NextGen Gallery que utilizo para montar álbumes de fotos.

Los principales problemas que he tenido han sido la realización de la copia de seguridad previa a la migración por el tiempo que ha tardado y después «aprender» a hacer una copia de la base de datos. También he perdido bastante tiempo porqué cuando he finalizado la última migración, no había forma de entrar en el panel de administración. El asunto se ha solucionado borrando las cookies de Firefox.