En más de una ocasión tendremos que exportar e importar contenido en WordPress, puede ser como resultado de una modificación/actualización o porque estamos conectado a un servicio externo que se actualiza con nuestro contenido o del que descargamos información. La lista de posibles razones puede ser mucho más larga, pero sin lugar a dudas, en algun momento nos enfrentaremos a esta tarea.

Quiero hacer incapié en que se trata de elementos del contenido (páginas, entradas, comentarios, usuarios, etc.), pero no migramos toda la web, en dicho caso lo mejor es usar una herramienta específica como All-in-One WP Migration. asdasd

Como exportar e importar contenido en WordPress

WordPress tiene incluida su propia herramienta de exportación e importación. La encontraremos dentro de Herramientas en nuestro panel de administración.

Su uso es sencillo, seleccionamos si vamos a exportar todo el contenido o podemos hacerv una seleccion dependiendo de nuestras necesidades.

Este proceso, creará un archivo XML que descargaremos. Vamos a la web destino y accedemos a Herramientas => Importar

Seleccionamos la opción WordPress, instalando y activando el plugin, si fuese necesario. Una vez seleccionado el archivo con el contenido nuevo, indicaremos que usuario será considerado el autor y si los adjuntos se copiarán a nuestra instalación o se mantendrán los enlaces a la web original. Un click más y tendremos el nuevo contenido en nuestro WordPress.

Este procedimiento no permite programar una exportación e importacion de contenido periódica o tener un control detallado sobre las entradas personalizadas. Veamos opciones más completas para exportar e importar contenido en WordPress con un control pleno de todas las opciones.

Exportar contenido en WordPress mediante un plugin

De las muchas opciones disponibles, yo prefiero utilizar WP All Export. Este plugin permite seleccionar con todo detalle que elementos del contenido vamos a incluir y generar un archivo csv o xml con la información deseada. Veamos como funciona

El primer paso consiste en seleccionar  el contenido, para ellos podemos configurar una consulta personalizada o simplemente escoger un elemento en el desplegable. Si disponemos de la versión Pro, podremos establecer filtros para refinar los resultados. 

Haciendo click en Customize Export, pasamos al siguiente paso donde decidiremos que información será exportada

Es procedimiento es simple. En el lado derecho tenemos los difererentes elementos que colocaremos en la posición deseada dentro de la caja. Tenemos control absoluto sobre el contenido y la estructura de los datos exportados.

Advanced Options nos permite por ejemplo elegir el separador de datos, si tenemos varios idiomas escoger uno de ellos y en Export Type decidiremos el formato del archivo con los datos exportados. Finalmente podemos guardar la confiuración para uso futuro o cargar una plantilla existente.

Continuamos y llegamos al tercer y último paso

Si tenemos la versión Pro, podemos programar la extracción de datos. Esto es útil por ejemplo si queremos enviar periódicamente nuestro contenido a un servicio externo.

Dependiendo de nuestros datos, la exportación puede llevar mucho tiempo. Para evitar errores de timeout, en configuración avanzada podemos especificar cuantos registros serán procesados en cada pasada. También podemos darle un nombre que nos permita localizar esta configuración en el listado de exportaciones para reutilizarla cuando sea necesario. 

Comprobamos que todo esté correcto, ejecutamos el proceso y descargamos el archivo generado.

Gestión del contenido exportado

En Manage Export encontraremos un listado de las exportaciones realizadas, de esta forma no tendremos que seguirtodos los pasos para repetir la exportación. Tambien podremos modificar la configuracion y elminar las que ya no necesitemos

WP All Export funciona perfectamente con su configuración por defecto. En Settings podemos gestionar las plantillas que hayamos creado, gestionar la integración con Zapier y tenemos la posibilidad de programar nuestras propias funciones en PHP, si fuese necesario.

Importar el contenido en WordPress mediante un plugin

Para importar el contenido utilizaremos WP All Import. Este plugin nos permite incorporar contenido a nuestro wordpress desde cualquier achivo CSV,  XML u hoja de Excel. Es un proceso muy intuitivo como veremos a continuación

El primer paso es seleccionar el origen de los datos, una vez cargado el archivo seleccionamos el tipo de contenido en destino. Decidimos si queremos crear nuevos elementos de contenido o actualizar los existentes y pasamos al paso 2.

En este paso podemos visualizar el contenido a importar y en caso de necesidad establecer filtros si querememos importar solo una parte de los datos. Una vez satisfechos con el resultado pasamos al paso 3

Establecemos la correspondencia correcta entre los elementos del contenido a importar y nuestras entradas. Es un proceso totalmente intuitivo que nos irá presentando las opciones adecuadas dependiendo del tipo de contenido a importar, como por ejemplo para importar imágenes:

En el paso final establecemos el comportamiento para modificar los datos existentes y en opciones avanzadas podemos identificarlo con un nombre descriptivo para localizarlo fácilmente en el listado de importaciones.

Hacemos click en continuar y esperamos a tener nuestro contenido disponible en nuestro WordPress.

Como en el caso de las exportaciones, tendremos un registro de las importaciones realizadas para poder repetirlas con un solo click. Tambien podemos guardar las configuraciones como una plantilla para uso posterior. Esta es una opción muy útil, porque dependiendo de la estructura de nuestras entradas la configuración puede requerir bastante tiempo.

Exportar e importar contenido mediante PHP

Hemos visto como extraer y añadir contenido a nuestra web mediante WP All Export y WP All import. Aunque son dos plugins complementarios podemos utilizarlos de manera independiente y en la mayoría de los casos son suficientes para esta tarea.

WP All Import, ofrece una API que permite a los desarrolladores de temas y plugin crear complementos para simplificar el proceso de importación. En mi ejemplo he utilizado addons de WPML y Housez para transferir propiedades inmobiliarias entre dos sitios.

Sin embargo, es posible que tengamos que dar un paso más allá en la personalización del proceso. Por ejemplo, la estructura de las entradas es diferente en la dos webs, lo que nos obligará a realizar trasnformaciones entre los mismos. Tenemos varias opciones:

Modificar el archivo de datos. Una vez descargado, lo editamos y realizamos los cambios pertinentes antes de la importación. Es un proceso manual que tendremos que realizar cada vez

Añadir funciones personalizadas al plugin. Tendremos estas opciones disponibles en algunos casos. Sin embargo para activar todas las funciones deberemos comprar la versión Pro.

Programar nuestro propio proceso. Si necesitamos realizar transformaciones complejas, posiblemente este sea el único camino posible. También es una forma de continuar utilizando la versión gratuita del plugin.

En lugar de programar todo el proceso de exportar e importar contenido en WordPress, suelo utilizar una solución intermedia. Utilizo WP All Export para extraer el contenido y así solo tengo que programar en PHP la importación de los datos, aplicando todas las transformaciones necesarias. Veamos como hacerlo:

Requisitos previos

Prefiero usar CSV como formato de transferencia porque genera un archivo más pequeño y su edición me resulta mucho más cómoda, por ese motivo la versión mínima de PHP es la 5.3, aunque no creo que sea un problema hoy en día, En mi ejempo utilizo fgetcsv() y funciones anónimas. Con las funciones anónimas evito tener cargadas funciones que no utilizaré y reduzco algo el consumo de recursos en el servidor.

Podemos incluir nuestro código directamente en el functions.php de nuestro tema, aunque yo prefiero tenerlo en un archivo independiente, por ejemplo,  en una página específica. De esa forma podemos generar una interfaz visual acorde a nuestras necesidades y tener mayor control sobre la ejecución del progreso.

Sin entrar en los detalles, pues cada caso concreto necesita su solución específica, presentaré un fragmento de código con los elementos necesarios para implementar la importación desde un archivo CSV. Suponemos que el archivo contiene tres columnas: titulo, contenido y adjunto. Y para no complicar el código implementamos un botón en el área de notificaciones para lanzar el proceso.

Ver código

He intentado documentar al máximo el código. Podeis consultar cualquier duda, aunque espero que sirva como plantilla para simplificar el proceso de realizar importaciones complejas. El ejemplo con pequeñas modificaciones ha sido tomado de Sitepoint

Conclusión

Hemos visto diferentes formas de exportar e importar contenido en WordPress.Dependiendo del volumen y complejidad de los datos usaremos uno u otro, pero incluso si tenemos que programar todo el proceso, WordPress pone a nuestra disposición herramientas que nos facilitarán mucho el trabajo.

El fragmento de código presentado puede servir como punto de partida para nuestras propias transformaciones. Puede ser descargado desde aquí

0 0 votes
Valoración del artículo
Suscribir
Notificar de
guest
0 Comentarios
Newest
Oldest Most Voted
Inline Feedbacks
View all comments