Migrar galería de imágenes de WordPress

No se si existe un plugin o alguna librería que permita migrar la galería nativa de imágenes de WordPress, de una instancia a otra.

Si tenemos acceso a la BD de ambas instancias de WP (WordPress) que queremos migrar, tenemos que ejecutar una serie de querys para realizar esta tarea.

Lo primero es encontrar en la BD original todas las filas que correspondan a un recurso de la galería.

Para ello, ejecutamos la siguiente query en la BD original.

SELECT * FROM `wp_posts` WHERE `post_type` = 'attachment'

Para realizar la siguiente acción necesitamos una herramienta que nos provee phpMyAdmin. Tenemos que exportar los resultados de esta query hacia un fichero, o en pantalla, con la finalidad de poder recoger los INSERTS para luego añadir los mismo registros a la BD objetivo.

Una vez exportado los datos, los importamos en la BD objetivo.

export

Esto no termina aquí, ya que la galería utiliza metadata para mostrarse.

Ejecutemos la siguiente query en la BD original:

SELECT * FROM `wp_postmeta` WHERE `post_id` IN (SELECT ID FROM `wp_posts` WHERE `post_type` = 'attachment')

Con esta query obtendremos la metadata de los attachments migrados con la primera query.

Volvemos a hacer un export de los resultados e importarlos a la BD objetivo.

El siguiente paso es cambiar la URL absoluta de las imagenes, por la URL de la nueva instancia  WP objetivo.

Esto lo conseguimos ejecutando la siguiente query en la BD objetivo.

UPDATE `wp_posts` SET guid = REPLACE(guid, 'http://www.oldurl.com/', 'http://www.newurl.com/')

Ahora necesitamos que estas URL apunten a las imágenes, para ello tenemos que descargarnos la carpeta uploads, que se encuentra en /wp-content/uploads de la instancia WP original, para luego subir la misma al directorio /wp-content/ de la instancia WP objetivo.

Con esto tenemos la galería de imágenes completamente migrada.

Espero que te haya sido de ayuda…