Modificar campos de la BD para actualizar URLs después de cambiar de proveedor o servidor y 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');