Corregir la BD de WordPress al cambiar de servidor

Modificar campos de la BD para actualizar URLs después de importar el sitio

Después de importar la BD de WordpPress al sitio nuevo, casi siempre es necesario corregir enlaces existentes referidos a la dirección web del sitio anterior y que ahora han de dirigir a la dirección web del nuevo sitio. Lo haremos usando comandos SQL basados en la función PHP replace().

Para ejecutar comandos SQL (asumiendo en este ejemplo que el blog estaba en “www.sitio.es” y se ha movido a 127.0.0.1 y que tenemos XAMPP instalado):

Nota: en vez de 127.0.0.1 puedes usar localhost.

  • Con un cliente FTP se copian los archivos y carpetas que componen nuestro blog desde el sitio web antiguo al nuevo (WinSCP y FileZilla son gratuitos y muy recomendables)
  • Ir a 127.0.0.1/xampp
  • Entrar en phpMyAdmin
  • Abrir la base de datos wordpress **
  • Entrar en la pestaña SQL
  • Escribir los comandos en el cuadro de texto debajo de “Ejecutar la(s) consulta(s) SQL en la base de datos wordpress:”
  • Ej: escribir
UPDATE wp_posts SET guid = replace(guid, 'www.sitio.es', '127.0.0.1');
  • y pulsar en Continuar para reemplazar las coincidencias “www.sitio.es” por 127.0.0.1 dentro del campo guid de la tabla wp_posts de la base de datos wordpress
  • Un mensaje informa del nº de filas que han sido afectadas por la consulta, ej: “6 fila(s) fueron afectadas. ( La consulta tardó 0.1214 seg )”
  • Escribir el resto de comandos uno a uno pulsando Continuar cada vez o escribir todos los comandos a la vez y pulsar Continuar
  • Los enlaces que tengamos en Apariencia > Menú Personalizado han de ser modificados a mano.

** (si la base de datos no existe, primero hay que crearla antes de importar la copia de seguridad).

Los comandos que hay que emplear para cambiar “www.sitio.es” por 127.0.0.1 son:

UPDATE wp_options SET option_value = replace(option_value, 'www.sitio.es', '127.0.0.1') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'www.sitio.es', '127.0.0.1');
UPDATE wp_posts SET post_content = replace(post_content, 'www.sitio.es', '127.0.0.1');
UPDATE wp_blc_links SET url = replace(url, 'www.sitio.es', '127.0.0.1');
UPDATE wp_blc_links SET final_url = replace(final_url, 'www.sitio.es', '127.0.0.1'); UPDATE wp_blc_instances SET raw_url = replace(raw_url, 'www.sitio.es', '127.0.0.1');

Como se puede apreciar, se hacen reemplazos en las tablas wp_options, wp_posts, wp_blc_links y wp_blc_instances.

Hay otra tabla llamada wp_postmeta en cuyo campo meta_value están algunos valores que también conviene repasar, entre ellos está la URL de los archivos adjuntos y de los enlaces creados en los menús personalizados.
Por ejemplo, si tenemos un enlace en el menú personalizado dirigido a la página de Login y queremos que se cambie a la nueva dirección local podemos hacer:

UPDATE wp_postmeta SET meta_value = replace(meta_value, 'www.sitio.es/wordpress/wp-admin', '127.0.0.1/wordpress/wp-admin');

Una respuesta a “Corregir la BD de WordPress al cambiar de servidor”

  1. También hay que tener en cuenta que si tenemos dentro del texto de los artículos los términos que se están reemplazando con el comando UPDATE pueden surgir errores no deseados.
    Por ejemplo, el comando

    UPDATE wp_posts SET post_content = replace(post_content, ‘www.sitio.es’, ‘127.0.0.1’);

    reemplazaría “www.sitio.es” por “127.0.0.1” incluso dentro del texto del comando mostrado en el artículo, cuyo texto después de ejecutar el comando quedaría así

    UPDATE wp_posts SET post_content = replace(post_content, ‘127.0.0.1’, ‘127.0.0.1’);

    que no es lo que buscamos. Esto ha de ser tenido en cuenta a la hora de hacer estos reemplazos.

Comentarios cerrados.