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:

 

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:

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

 

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:

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:

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

Puede que también te interese

Eliminar código innecesario del wp_head
Eliminar código innecesario del wp_head
Por defecto WordPress incluye una serie de meta-tags en la cabecera de nuestro sitio a través de la función wp_head(). La mayoría de estas etiquetas…
Seguridad WordPress: proteger el archivo wp-login.php
Seguridad WordPress: proteger el archivo wp-login.php
En una entrada anterior vimos cómo proteger el acceso a wp-admin. Vamos a ver ahora cómo proteger el archivo wp-login.php, situado en la raíz de…
Site Icon, mucho más que un favicon
Site Icon, mucho más que un favicon
En la versión 4.3 de WordPress se introdujo una nueva característica: el Site Icon. Antes de esta versión teníamos que introducir el favicon manualmente, o…
Creando un plugin para WordPress parte 4: Integración con WordPress
Creando un plugin para WordPress parte 4: Integración con WordPress
1. Creando un plugin para WordPress: Planificación y planteamiento 2. Creando un plugin para WordPress: Estilo del Código 3. Creando un plugin para WordPress: Escribiendo…