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: usa un Captcha para login
Seguridad WordPress: usa un Captcha para login
Otro “filtro” que podemos usar para proteger nuestro panel de administración o back-end. Instalando un plugin como WP Login reCAPTCHA, podremos insertar el reCAPTCHA de…
Cómo personalizar AMP en WordPress
Cómo personalizar AMP en WordPress
AMP es el proyecto de Google y varios partners (entre los que se encuentra WordPress) para ofrecer a los usuarios páginas ultra rápidas. Son las…
Cómo cambiar el tipo de Custom Post Type en WordPress
Cómo cambiar el tipo de Custom Post Type en WordPress
En WordPress podemos crear diferentes tipos de contenido, los Custom Post Type. A la hora de registrarlos utilizamos la función register_post_type( $post_type, $args ); El primero…
Como convertir parámetros por GET en URLs amigables
Como convertir parámetros por GET en URLs amigables
Es muy habitual pasar parámetros por $_GET a una página para procesar algo, o simplemente para mostrar un contenido u otro en función del mismo.…