Cambia la dirección de tu sitio de WordPress

Muchas veces por varias razones tenemos que cambiar el dominio de nuestro WordPress: ya sea porque lo hemos desarrollado en otro servidor antes de dejarlo público o porque simplemente queremos cambiar la URL de acceso a nuestro blog.

WordPress está pensado para estos casos y desde LinuxHispano nos enseñan cómo hacerlo de una manera sencilla pero sin entrar en aspectos técnicos.

Transporte de Datos:

Lo primero que debemos hacer es asegurarnos de que el contenido PHP, JavaScript, imágenes, etc. esté accesible desde el nuevo dominio. Si cambiamos de servidor deberíamos copiarlo usando FTP, SCP o la opción que más os guste.

Base de datos

Este es el punto más interesante. ¿Por qué? A priori, en muchos manuales leeremos que sólo hay que cambiar en la tabla de opciones, wp_options, los siguiente valores:

  • siteurl: dirección donde está instalado WordPress, suele coincidir con la de abajo
  • home: inicio del blog

Sin embargo hay detalles que se escapan: la tabla wp_posts con las entradas y wp_options van a estar llenas de referencias al dominio antiguo.

Bueno, la primera solución que se nos ocurriría, sería o montar una consulta o un script para que trate estos datos y haga una actualización del dominio antiguo al nuevo, o tirar por el camino del dump, el reemplazo masivo en el fichero SQL y la posterior importación. Sin embargo, no es tan fácil.

Las tablas en WordPress tienen un diseño que imposibilita hacer relaciones 1:N cuando no las hay. Me explico. Soy el plugin tal y quiero almacenar datos referentes a mí en un total de 10 instancias. Podría:

  • Hacer una tabla para mí y con una clave foránea referirme a la opciones de WordPress: no es posible, se sale del estándar
  • Meter tantas opciones como necesite en wp_options: no es elegante y a la hora de hacer consultas, no es la vía más fácil si mis opciones pueden crecer de forma desmesurada. Si son siempre las mismas es una buena opción.
  • Meter una sola fila en wp_options con todo usando la serialización de PHP: es la opción elegida cuando no se puede usar la anterior

Antes de entrar a hablar de la serialización en PHP os recuerdo que si cambiáis de servidor, deberéis:

  • Migrar los datos MySQL haciendo un dump y luego importándolos
  • Modificar los parámetros de wp-config.php referentes a la base de datos y referentes a: siteurl, home y situación del contenido si es que los habéis cambiado en dicho fichero

¿Qué hace la serialización en PHP?

La idea de serialize() es obtener una cadena con la información de varios valores que puede ser prácticamente cualquier cosa y tener además la herramienta contraria, unserialize(). La idea es similar a JSON pero tiene sus pros y contras (ya hablaremos otro día de ello con más tiempo).

El problema de usar serialize() es que resulta imposible hacer un reemplazo directamente, porque la cadena que genera es sensible como podéis imaginar a su tamaño y a una serie de tokens que incorpora internamente.

La solución: usar esta herramienta de David Covene llamada Search and replace for WordPress Databases. Deberemos instalarla en nuestro servidor y ejecutarla. Sólo deberemos decir sobre qué tablas queremos hacer la operación de búsqueda y reemplazo y qué cadenas queremos reemplazar (en nuestro caso serán http://dominio_antiguo por http://dominio_nuevo).

Y con esto estaría terminada la modificación de dirección o dominio de nuestro blog.

Espero que esta solución os ayude a cambiar vuestra dirección de WordPress en poco tiempo. ¿Qué os ha parecido?

Fuente del tutorial: LinuxHispano

DEJA TU COMENTARIO