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

Seguridad WordPress: proteger wp-config.php
Seguridad WordPress: proteger wp-config.php
El archivo wp-config.php es uno de los más críticos en cuanto a seguridad se refiere ya que es el que contiene la información sobre la…
Elimina las columnas de Yoast SEO en los listados de posts
Elimina las columnas de Yoast SEO en los listados de posts
Es bastante probable que hayas utilizado un plugin para trabajar el SEO de tu web, o la de alguno de tus clientes. De hecho mucha…
Mejora la puntuación de Google PageSpeed Insights: Optimizar imágenes
Mejora la puntuación de Google PageSpeed Insights: Optimizar imágenes
1. Optimizar imágenes 2. Minificar CSS y JS 3. Especificar caché de navegador 4. Habilita la compresión 5. Reducir el tiempo de respuesta del servidor…
Autocomplete Off en el formulario de login al backend de WordPress
Autocomplete Off en el formulario de login al backend de WordPress
En ésta entrada vamos a ver cómo agregar la funcionalidad autocomplete=”off” para los campos de usuario y clave en el formulario de login al backend…