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

WP-CLI Parte 3, trabajando con posts

 

En esta tercera entrada de la serie WP-CLI vamos a ver cómo trabajar con posts.

Para trabajar con posts utilizaremos el comando wp post. Éste comando dispone de los siguiente subcomandos:

  • wp post create, para crear un nuevo post
  • wp post delete, para borrar un post
  • wp post edit, abre un editor para modificar el post_content
  • wp post generate, para generar un lote de posts
  • wp post get, para obtener detalles de un post
  • wp post list, para obtener un listado de posts
  • wp post meta, para administrar post meta
  • wp post term, para administrar terms
  • wp post update, para actualizar posts

 

Vamos a ver a continuación algunos ejemplos:

 

Creando un post con WP-CLI

Para crear un post individual utilizaremos el comando wp post create. Este comando acepta los parámetros:

  • [<file>], almacena en post_content el contenido de <file>.
  • [--<field>=<value>], par clave/valor.
  • [--edit], abre el editor de archivos del sistema para escribir el post_content
  • [--porcelain], devuelve el post_id

 

En [--<field>=<value>] podemos establecer valores para algunos campos como:

  • ID
  • post_author
  • post_date
  • post_content
  • post_title
  • post_excerpt
  • post_status
  • post_type
  • post_password
  • post_name
  • post_parent
  • menu_order
  • post_category

 

Ejemplo:

wp post create --post_title="Pagina desde linea de comandos" --post_content="lorem ipsum dolor sit amet" --post_type="page" --menu_order=7

 

Genera un lote de posts desde la línea de comandos

A veces es interesante generar un lote de posts, para ver cómo funciona nuestra página: ver cómo queda un listado, probar la paginación, etc…

Si estamos desarrollando un proyecto nuevo tenemos la opción de crear un lote de 50 posts a mano, con todo el tiempo que esto conlleva, o hacer uso del comando wp post generate. Este comando admite los siguientes parámetros:

  • [--count=<number>], el número de posts que queremos generar. Por defecto 100.
  • [--post_type=<type>], el tipo de post que queremos generar. Por defecto post.
  • [--post_status=<status>], el estado de los posts que queremos generar. Por defecto publish.
  • [--post_author=<login>], para asignar un autor a los posts que queremos generar.
  • [--post_date=<yyyy-mm-dd>], para establecer una fecha a los posts que queremos generar.
  • [--post_content], para asignar contenido a los posts.
  • [--max_depth=<number>], para posts que sean de tipo hierarchical
  • [--format=<format>], para que nos devuelva en la salida una barra de progreso o los ids de los posts que se están generando. Por defecto progress.

 

Por ejemplo, si queremos generar un lote de 50 posts, bastará con esta instrucción:

curl http://loripsum.net/api/5 | wp post generate --post_content --count=50

Se generarán los posts: Entrada 1, Entrada 2 …. Entrada 50 en apenas unos segundos, y dispondremos de contenido dummy para hacer testeos en nuestro entorno.

 

Obtén un listado de posts con WP-CLI

Si queremos obtener un listado de posts en pantalla, disponemos del comando wp post list. Acepta los siguientes parámetros:

  • [--<field>=<value>], uno o más args que se pasarán a la WP_Query que devolverá el listado.
  • [--field=<field>], para imprimir únicamente un campo concreto en la salida.
  • [--fields=<fields>], para limitar la salida a campos específicos.
  • [--format=<format>], para mostrar la salida en un formato determinado. Por defecto tabla. Acepta: table, csv, ids, json, count, yaml

 

Por ejemplo, si queremos mostrar simplemente un listado de post, nos bastará con el comando: wp post list, y se nos mostrará en pantalla algo como esto:

wp post list

Si queremos especificar una serie de campos concretos, bastará con indicarlos separados por coma:

wp post list --fields=ID,post_title,post_author

wp post list fields

 

Elimina un post con WP-CLI

Con WP-CLI podemos también eliminar uno o varios posts desde la consola. El comando es wp post delete, y acepta los siguientes parámetros:

  • <id>, uno o más IDs (separados por coma) para eliminar (quedarán en papelera)
  • [--force], para forzar la eliminación completa de los posts, no quedarán en papelera
  • [--defer-term-counting], para obviar la llamada a wp_defer_term_counting() y evitar varias queries y mejorar el rendimiento del proceso

 

Por ejemplo, si queremos eliminar los posts con ID 55, 56 y 57, ejecutaremos el siguiente comando:

wp post delete 55,56,57

Esto los pondrá en papelera (post_status=trash). Si quisiéramos eliminarlos completamente tendríamos que añadir el parámetro –force.

También podemos eliminar posts sacando sus IDs de un listado, combinando dos comandos:

wp post delete (wp post list --post_status=trash --format=ids)

De este modo eliminaremos todos los posts que están en la papelera.

Puede que también te interese

Añadir un icono personalizado a nuestro custom post type
Añadir un icono personalizado a nuestro custom post type
La versión 3.8 de WordPress trajo consigo nuevas mejoras, el tema Twentyfourteen, y un cambio completo de diseño en el Back End. Con éste cambio,…
Archivo wp-config.php para diferentes entornos
Archivo wp-config.php para diferentes entornos
Local, desarrollo, pre-producción, producción… entornos de desarrollo habituales en cualquier proyecto web. Entornos con características diferentes, configuraciones diferentes, distintos usuarios de base de datos, distintos…
Cómo integrar los estilos de los menús de bootstrap con WordPress
Cómo integrar los estilos de los menús de bootstrap con WordPress
Si estás desarrollando un tema nuevo en WordPress y estás usando el framework Bootstrap para la maquetación del Front-end, probablemente te hayas encontrado con el…
Crea tus propias acciones en lote personalizadas en WordPress
Crea tus propias acciones en lote personalizadas en WordPress
Desde la versión 4.7 de WordPress tenemos disponible la opción de crear nuestras propias acciones en lote personalizadas. Esto es muy útil, ya que podemos…