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

WP-CLI Parte 8, Scaffold: genera esqueletos de código para post types, taxonomías, plugins, child themes…

 

Octava entrega de la serie WP-CLI. Vamos a ver cómo generar esqueletos de código para crear nuestros custom post types, taxonomías, plugins, child themes…

Si eres desarrollador, el comando wp scaffold te va a venir como anillo al dedo. Éste comando consta de los siguientes subcomandos:

  • wp scaffold child-theme, genera un child theme basado en el tema activado.
  • wp scaffold plugin, genera un código base para crear tu propio plugin. Crea un starter plugin, como referencia para tu desarrollo.
  • wp scaffold plugin-tests, genera los ficheros necesarios para correr test unitarios en tu plugin (PHPUnit).
  • wp scaffold post-type, genera el código PHP necesario para registrar un custom post type.
  • wp scaffold taxonomy, genera el código PHP necesario para registrar una custom taxonomy.
  • wp scaffold theme-tests, genera los ficheros necesarios para correr test unitarios en tu tema (PHPUnit).
  • wp scaffold _s, genera un código base para crear tu propio tema basado en Underscores (_s).

 

¿Cómo te quedas? Interesante, ¿no? Veamos estos comandos con más detenimiento

 

Genera el código necesario para crear custom post types y custom taxonomies

No se tu, pero antes cada vez que tenía que crear un custom post type o una custom taxonomy acababa yendo al codex de WordPress o a GeneratePress a obtener un código limpio para crearlo. Ahora disponemos de los comandos wp scaffold post-type y wp scaffold taxonomy para hacer estas tareas.

Para registrar un nuevo custom post type, nos serviremos del comando wp scaffold post-type, que acepta los siguientes parámetros:

  • <slug>, para establecer el identificador o nombre de nuestro post type.
  • [--label=<label>], el texto que usaremos para los botones y menús del escritorio de WordPress. Por defecto se configura para el multi-idioma.
  • [--textdomain=<textdomain>], nuestro textdomain para traducir las cadenas.
  • [--dashicon=<dashicon>], para establecer un icono en el menú del escritorio de WordPress (https://developer.wordpress.org/resource/dashicons/#products).
  • [--theme], para indicar que cree un archivo PHP en nuestro tema con el código generado en lugar de imprimirlo por pantalla.
  • [--plugin=<plugin>], para indicar que cree un archivo PHP en el plugin indicado con el código generado en lugar de imprimirlo por pantalla.
  • [--raw], para generar únicamente el código para registrar el post-type, sin crear las funciones que se enganchan al init y al post_update_messages.
  • [--force], sobreescribe los ficheros si ya existen.

 

Un simple ejemplo:

wp scaffold post-type

Una vez tenemos el código, podemos pegarlo en nuestro functions.php o en nuestro plugin, hacer las modificaciones que necesitemos y listo.

Para las taxonomías es muy parecido. Los parámetros que acepta el comando wp scaffold taxonomy son los siguientes:

  • <slug>, para establecer el identificador o nombre de nuestra taxonomía.
  • [--post_types=<post-types>], post-types registrados a los que asociamos la nueva taxonomía.
  • [--label=<label>], el texto que usaremos para los botones y menús del escritorio de WordPress. Por defecto se configura para el multi-idioma.
  • [--textdomain=<textdomain>], nuestro textdomain para traducir las cadenas.
  • [--theme], para indicar que cree un archivo PHP en nuestro tema con el código generado en lugar de imprimirlo por pantalla.
  • [--plugin=<plugin>], para indicar que cree un archivo PHP en el plugin indicado con el código generado en lugar de imprimirlo por pantalla.
  • [--raw], para generar únicamente el código para registrar el post-type, sin crear las funciones que se enganchan al init y al post_update_messages.
  • [--force], sobreescribe los ficheros si ya existen.

 

 

Genera el código necesario para crear tu propio plugin

La cosa empieza a ponerse interesante. Con WP-CLI podemos generar el esqueleto de un plugin. Una base sobre la que desarrollar nuestro plugin. Una manera de superar el síndrome del folio en blanco.

El comando wp scaffold plugin acepta los siguientes parámetros:

  • <slug>, el slug o identificador de nuestro plugin.
  • [--dir=<dirname>], si queremos crear los ficheros en un directorio diferente al de plugins.
  • [--plugin_name=<title>], el nombre del plugin que será visible en el escritorio de WordPress.
  • [--plugin_description=<description>], la descripción de lo que hace nuestro plugin.
  • [--plugin_author=<author>], el nombre del autor o autores del plugin.
  • [--plugin_author_uri=<url>], URL del autor o autores del plugin.
  • [--plugin_uri=<url>], URL de la página del plugin.
  • [--skip-tests], para no generar los ficheros necesarios para correr test unitarios en nuestro plugin.
    [–ci=<provider>], para escoger la herramienta de integración continua. Las opciones son ‘travis’ (por defecto), ‘circle’ y ‘gitlab’.
  • [--activate], para activar el plugin una vez creado.
  • [--activate-network], para activar el plugin para toda la red (en caso de instalación multisite).
  • [--force], para forzar sobre-escribir el plugin en caso de que ya exista.

 

wp scaffold plugin

Si nos vamos a la carpeta /wp-content/plugins/ veremos que nos ha creado una carpeta llamada myplugin, y dentro encontraremos los siguientes archivos:

wp scaffold plugin files

Como vemos es una instalación base, un esqueleto a partir del cual empezar a desarrollar nuestro plugin.

 

Genera el código necesario para crear tu propio tema o tema hijo

También podemos crear el esqueleto de un tema, basado en el starter theme Underscores, también conocido como _s. Lo conseguimos a partir del comando wp scaffold _s. Éste comando acepta los siguientes parámetros:

  • <slug>, el slug o identificador de nuestro tema.
  • [--activate], para activar el tema una vez creado.
  • [--enable-network], para habilitar el tema para toda la red (en caso de instalación multisite).
  • [--theme_name=<title>], el nombre que se establecerá en las cabeceras de style.css (y que aparecerá después en el gestor de temas del escritorio de WordPress).
  • [--author=<full-name>], el nombre del autor o autores del tema.
  • [--author_uri=<uri>], URL del autor o autores del tema.
  • [--sassify], para incluir la hojas de estilos del tema en formato SASS.
  • [--force], para forzar sobre-escribir el tema en caso de que ya exista.

 

Al igual que antes, siempre viene bien de tirar de una base para superar el síndrome del folio en blanco. Nuestro tema dispondrá de una estructura básica que incluye:

  • Los ficheros de la jerarquís de plantillas de WordPress: index.php, header.php, footer.php, functions.php, archive.php, single.php, page.php, 404.php, comments.php, search.php y sidebar.php.
  • Carpeta inc/ para añadir los includes.
  • Carpeta js/ para añadir archivos JavaScript.
  • Carpeta languages/ para la internacionalización de nuestro tema.
  • Carpeta layouts/ para almacenar CSS
  • Carpeta template-parts/ para los archivos de plantilla.

 

¿Pero y si lo que queremos es generar un Child-theme de un tema existente? También podemos con WP-CLI, a través del comando wp scaffold child-theme. Acepta los siguientes parámetros:

  • <slug>, el slug o identificador de nuestro tema hijo.
  • --parent_theme=<slug>, el slug del tema padre sobre el que heredaremos.
  • [--theme_name=<title>], el nombre que se establecerá en las cabeceras de style.css (y que aparecerá después en el gestor de temas del escritorio de WordPress).
  • [--author=<full-name>], el nombre del autor o autores del tema.
  • [--author_uri=<uri>], URL del autor o autores del tema.
  • [--theme_uri=<uri>], URL del tema.
  • [--activate], para activar el tema una vez creado.
  • [--enable-network], para habilitar el tema para toda la red (en caso de instalación multisite).
  • [--force], para forzar sobre-escribir el tema en caso de que ya exista.

 

Este comando simplemente creará un archivo style.css con las cabeceras del tema hijo:

y un archivo functions.php con la inclusión de la hoja de estilos del tema hijo y del tema padre:

Puede que también te interese

WP-CLI Parte 6, search replace, un comando imprescindible
WP-CLI Parte 6, search replace, un comando imprescindible
1. Instalación y primeros pasos 2. Instalando WordPress y primeros pasos y configuraciones 3. Trabajando con posts 4. Trabajando con usuarios 5. Trabajando con la…
Cómo eliminar automáticamente los enlaces por defecto en las imágenes dentro del editor de WordPress
Cómo eliminar automáticamente los enlaces por defecto en las imágenes dentro del editor de WordPress
WordPress dispone de un sistema potentísimo para administrar el contenido multimedia de tu sitio web. Es muy fácil subir archivos, imágenes, etc…y siempre las tendremos…
Cómo eliminar campos personalizados o custom fields que ya no utilizas
Cómo eliminar campos personalizados o custom fields que ya no utilizas
Es algo muy habitual el uso de campos personalizados o custom fields para hacer desarrollos a medida sobre WordPress. También es muy habitual con el…
WP-CLI Parte 3, trabajando con posts
WP-CLI Parte 3, trabajando con posts
1. Instalación y primeros pasos 2. Instalando WordPress y primeros pasos y configuraciones 3. Trabajando con posts 4. Trabajando con usuarios 5. Trabajando con la…