Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
WP-CLI

WP-CLI Parte 7, importar y exportar contenido

 

Séptima entrega de la serie sobre WP-CLI. En esta ocasión vamos a ver cómo exportar e importar contenido en nuestra web.

Para ello, disponemos de los comandos wp export y wp import.

 

Exportar contenido con WP-CLI

A través del comando wp export podemos exportar el contenido a un fichero WXR. Este fichero contendrá la información sobre autores, términos, entradas, comentarios y adjuntos. No incluye configuración del sitio (options) ni los propios ficheros de los archivos adjuntos.

Admite los siguientes parámetros:

  • [--dir=<dirname>], ruta completa donde se almacenará el fichero WXR. Por defecto es el actual directorio desde el que estamos ejecutando el comando.
  • [--skip_comments], para no incluir los comentarios en el archivo WXR.
  • [--max_file_size=<MB>], para establecer en megas el tamaño máximo del archivo WXR. Por defecto 15
  • [--start_date=<date>], para establecer una fecha de publicación a partir de la cual exportar el contenido. El formato de fecha debe ser YYYY-MM-DD.
  • [--end_date=<date>], para exportar entradas que tengan como tope esta fecha de publicación. El formato de fecha debe ser YYYY-MM-DD.
  • [--post_type=<post-type>], para exportar las entradas de un tipo de contenido concreto. Pueden establecerse varios tipos de contenido separados por coma. Ej: post,page,product… Por defecto se exporta todo (any)
  • [--post_type__not_in=<post-type>], al contrario que el anterior, para exportar las entradas excepto de los tipos de contenido indicados. Pueden establecerse varios tipos de contenido separados por coma.
  • [--post__in=<pid>], para exportar todos los posts especificados. Admite una lista de IDs separados por coma o espacio.
  • [--start_id=<pid>], para exportar todos los posts con ID igual o superior al indicado (número).
  • [--author=<author>], para exportar todos los posts que ha creado un usuario concreto. Se puede identificar al usuario por ID o por nombre de usuario (user_login).
  • [--category=<name>], para exportar todos los posts de una categoría concreta.
  • [--post_status=<status>], para exportar todos los posts que se encuentren en un determinado status (publish, future, draft, trash…).
  • [--filename_format=<format>], para especificar un formato al nombre de fichero que se va a exportar. Por defecto: ‘{site}.wordpress.{date}.{n}.xml’.

 

Como puede observarse, disponemos de multitud de filtros para exportar contenido muy concreto: entre fechas, de un autor determinado, de una categoría determinada, de un tipo de contenido concreto, etc… Veamos algunos ejemplos:

Por ejemplo, para exportar todos los posts de la categoría noticias:

wp export --category=noticias --skip_comments

wp export

Otro ejemplo, exportar todos los post del custom post type eventos entre dos fechas. Por ejemplo: todos los eventos del año 2017:

wp export --post_type=events --start_date=2017-01-01 --end_date=2017-12-31 --skip_comments

También podemos hilar un poco más fino y concatenar varios comandos, como por ejemplo para exportar todos los posts que tengan un custom field con un determinado valor:

wp export --post__in="$(wp post list --meta_key=my_custom_field --meta_value='my_custom_value' --format=ids)"

 

Importar contenido con WP-CLI

Siempre que hablamos de exportar, lo siguiente es hacerlo de importar. Para este caso el comando es wp import. Este comando lo que hace es importar el contenido desde un fichero WXR. Éstos son los parámetros que acepta:

  • <file>…, ruta a uno o más ficheros WXR válidos. Además de la ruta completa a un fichero concreto, también son aceptados directorios.
  • --authors=<authors>, para indicar cómo manejar el mapeo de autores. Las opciones que acepta este parámetro son: ‘create’, ‘mapping.csv’, o ‘skip’. Para más información te aconsejo que leas la documentación oficial.
  • [--skip=<data-type>], para saltar la importación de datos específicos. Las opciones que acepta este parámetro son: ‘attachment’ y ‘image_resize’. Se ahorraría tiempo al evitar generar los thumbnails.

 

El ejemplo más sencillo es simplemente importar los datos de un fichero concreto:

wp import admin.wordpress.2017-10-14.000.xml --authors=create

Para que la importación funcione es necesario que tengas instalado y activado el plugin WordPress Importer. Puedes instalarlo y activarlo directamente desde la línea de comandos:

wp plugin install wordpress-importer --activate

Puede que también te interese

Limita el tamaño en píxeles en la subida de imágenes
Limita el tamaño en píxeles en la subida de imágenes
¿Quien no se ha encontrado alguna vez con algún cliente o colaborador que sube imágenes a máxima resolución y calidad recién salidas de su cámara…
Todo lo que hay que saber sobre las imágenes destacadas o post thumbnails en WordPress
Todo lo que hay que saber sobre las imágenes destacadas o post thumbnails en WordPress
Los post thumbnails o imágenes destacadas es una característica que se introdujo en la versión 2.9 de WordPress. Permite asignar una imagen representativa a las…
Los 10 mandamientos del WPO en WordPress
Los 10 mandamientos del WPO en WordPress
En la primera edición de la WordCamp Madrid he tenido la oportunidad de estrenarme como ponente en casa con la charla titulada Los 10 mandamientos…
AJAX tradicional vs AJAX moderno, comparativa de rendimiento
AJAX tradicional vs AJAX moderno, comparativa de rendimiento
En las dos entradas anteriores veíamos dos formas de hacer AJAX en WordPress. Las dos son perfectamente válidas, pero en este post quiero hacer una…