CMB2, la librería de WordPress para construir metaboxes

Una de las mayores limitaciones que tiene el core de WordPress a la hora de crear temas o plugins es la gestión de custom post types que requieran del uso de campos personalizados no nativos. CMB2 es una solución perfecta a este problema, proporcionando una integración muy potente con el administrador de WordPress para crear metaboxes que faciliten la gestión de tus campos personalizados

Desde que he empezado a trabajar en serio desarrollando plugins y/o temas para WordPress, CMB2 no falta en mis proyectos. Desarrollado por webdevstudios.com, CMB2 es una librería para WordPress, también disponible en forma de plugin, que proporciona una forma cómoda y sencilla de crear y gestionar metaboxes para campos personalizados en el panel de control.

Con CMB2 podemos añadir al panel de administración de nuestros custom post types y páginas un amplio rango de campos de diferentes tipos para gestionar los campos personalizados. Tienen predefinidos más de 30 tipos de campos distintos: campos de texto, combos, checkboxes, listas de archivos, campos WYSIWYG, selectores de fechas… Podéis encontrar la lista completa de campos disponibles en su documentación oficial. Un pequeño ejemplo con algunos de los tipos disponibles:

ejemplo-metaboxes-cmb2

Integración de CMB2

Hay dos maneras de utilizar CMB2: incluyendo la librería en nuestro tema/plugin, o bien instalando el plugin oficial de CMB2. Yo opto por la segunda opción, instalarlo como plugin y utilizarlo externamente desde mis temas/plugins. Una vez instalado, integrarlo con nuestro código es muy sencillo:

Primeramente tenemos que incluir el archivo init.php de la librería, que por defecto encontraréis en plugins/cmb2/init.php. Para mantener el código lo más limpio y ordenado posible, es recomendable mantener en un archivo separado (o en varios si queremos dividir por custom post types) la declaración de los campos personalizados.

En primer lugar registramos al action cmb2_init la función o funciones donde vamos a declarar los campos personalizados. Es recomendable declarar los metaboxes de cada custom post type en funciones separadas, de forma que sea más sencillo de mantener y extender posteriormente.

Para cada custom post type es buena idea declarar un prefijo que se asociará al nombre de cada uno de los campos. Se puede poner el nombre que se quiera, yo suelo poner el nombre del plugin/tema, seguido del nombre del custom post type, y siempre empezando por guión bajo (_), ya que los campos meta que comiencen por _ no serán visibles el editor nativo de WordPress para campos personalizados.

Posteriormente solo tendremos que ir añadiendo los campos uno a uno. Por regla general todos los campos tienen varios atributos comunes: nombre, identificador y tipo. Para el identificador, lo más limpio es utilizar el prefijo que hemos definido anteriormente, seguido por el identificador interno que queramos dar a dicho campo.

Para más detalles sobre todos los tipos de campos disponibles y los valores que pueden tomar cada uno de sus atributos, os recomiendo revisar la fantástica documentación oficial, disponible en su repositorio de github: documentación de CMB2.

Extracción de los campos

A la hora de extraer los valores de los campos personalizados en nuestro tema o plugin, lo haremos de la misma forma en la que manipulamos cualquier otro campo meta, utilizando la función get_post_meta(). Ejemplo:

 

Sin duda alguna, CMB2 se ha convertido en un imprescindible en mis proyectos. Como habéis podido ver, de una forma muy simple y cómoda podemos dotar a nuestros custom post types de una mayor versatilidad sin tener que recurrir al engorroso gestor de campos personalizados nativo de WordPress.

Uso de cookies

Este sitio web, como todos, utiliza cookies. Si continúas navegando por la web estás dando tu consentimiento para la aceptación de la política de cookies de este sitio web. ACEPTAR

Aviso de cookies