WordPress – Importar adjuntos a la librería de medios multimedia

wordpress-logo.jpgA causa de un error de login en este blog me vi obligado a hacer una instalación limpia de wordpress, para lo cual cree una nueva Base de Datos e hice un backup de todos los archivos del wordpress en una carpeta del servidor, por si algo salía mal, poder volver atrás.

Acto seguido exporte los post, páginas, etc del blog con la herramienta de import/export de wordpress, pero no cai en la cuenta que esta maneja fatal el tema de los archivos adjuntos, esos que se guardan en la librería de medios (fotos, etc).
Como resultado, cuando tenía el nuevo wordpress con todo importado y funcionando, no salía ninguna «imagen destacada» para ningún artículo y tampoco las fotos de dentro de los mismos.
Y claro, hacerlo manualmente uno a uno suponía un horror no asumible, así que mejor trastear en la Base de Datos para hacerlo de un tirón.

Importar adjuntos de la librería de medios de un wordpress antiguo al nuevo.

Entre en la base de datos antigua con phpmyadmin y exporte a un archivo el resultado de estas dos consultas, los cuales modifique usando un editor de texto cualquiera, use Kate:

 

  1) Obtener datos de adjuntos antiguos.

 

SELECT * FROM wp_posts WHERE post_type = 'attachment' AND post_parent != '0';
SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN ( SELECT ID FROM wp_posts WHERE post_type = 'attachment' AND post_parent != '0' );

 

2) Modificar los archivos de exportación de sql.

En el 1er archivo elimine todas las sentencias que no fueran INSERT INTO, es decir, los CREATE TABLE, ALTER TABLE, etc fuera del archivo. Además modifique los «INSERT INTO» por «INSERT IGNORE INTO» para que insertase duplicados en la tabla en caso que existieran. También hay que revisar la url de las imagenes, en caso que el nuevo wordpress esté en un dominio o ruta diferente al que tenía el antiguo del que hemos extraido estos datos.

El el segundo archivo tan sólo hay que eliminar todas las sentencias que no sea INSERT INTO.

 

 

3) Grabar todas las imagenes y adjuntos al nuevo blog.

Ya sea con filezilla, mediante la aplicación de filemanager del Cpanel o con la consola de comandos, hay que copiar los ficheros de imagenes y adjuntos del backup del antiguo wordpress al nuevo donde se ha migrado e importado, para ello hay que copiar la antigua carpeta wp-content/uploads/ entera de un sitio al otro. Al terminar dar los permisos necesarios a las carpetas copiadas para que posteriormete wordpress pueda crear nuevo contenido en ella.

Y tras esto, mis archivos de imagenes aparecieron por «arte de magia» nuevamente, auqnue he de reconocer que no se porque motivo, hubo unas cuantas imagenes destacadas que no lo hicieron, no muchas, así que tuve que ponerlas a manubrio.

En resumen, este método te ahorra mucho tiempo, sobretodo si tienes un volumen importante de artículos y páginas en el blog, pero no es del todo infalible, así que usalo con precaución y realiza un backup de nuevo blog antes de ello.

 

2095 visitas.

3 comentarios sobre “WordPress – Importar adjuntos a la librería de medios multimedia

  1. Muchisimas gracias, estoy migrando un sitio web a una instalación nueva y necesitaba exportar las imagenes con los mismos id’s. NO encontraba la solución en ningun lado, me has ahorrado cientos de horas. ; )

Responder a Ricardo Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *