Cómo crear un Custom Post Type con JetEngine
- ¿Qué es un Custom Post Type?
- ¿Qué son las taxonomías?
- ¿Qué son los terms o términos en WordPress?
- 1. Cómo crear un nuevo Tipo de Publicación Personalizada o CPT
- 2. Configura tu CPT
- General Settings (Configuración general)
- Labels (Etiquetas)
- Advanced Settings (Ajustes avanzados)
- Meta Fields (Metacampos)
- ¿Qué es un Meta Fields o Metacampo?
- Configuración del metacampo
- Tipos de metacampo
- Text (Texto)
- Date (Fecha)
- Time (Tiempo)
- Datetime (Fecha y hora)
- Textarea (Área de texto)
- WYSIWYG (Editor con texto enriquecido)
- Switcher (Conmutador o interruptor)
- Checkbox (Caja de chequeo)
- Iconpicker (Selector de iconos)
- Media (Archivo de medios)
- Gallery (Galería de medios)
- Radio
- Repeater (Repetición)
- Select (Selector desplegable)
- Number (Número)
- Colorpicker (Selector de color)
- Posts (Publicaciones)
- HTML (Código HTML)
- Valores personalizados en los tipos Checkbox y Radio
- Allow Custom (Permitir valores personalizadas)
- Get options from the glossary (Obtener opciones desde un glosario)
- Save as array (Guardar como matriz)
- Otros parámetros de los metacampos
- Crear taxonomías a un Custom Post Type de JetEngine
- 1. General Settings (Configuración general)
- 2. Labels (Etiquetas)
- 3. Advanced Settings (Configuración avanzada)
- 4. Meta fields (Metacampos)
- Añadir y editar taxonomía
¿Qué es un Custom Post Type?
Los Custom Post Type (tipo de publicación personalizada) también llamada CPT, en WordPress son tipos de contenido como entradas o páginas. Dado que WordPress evolucionó de una simple plataforma de blogs a un CMS robusto, el término Post (publicación) se mantuvo.
Sin embargo, un Post Type (tipo de publicación) puede ser cualquier tipo de contenido. Por defecto, WordPress viene con estos tipos de publicaciones: Post (entrada), Página, Adjunto, Revisión y Menú de navegación. Otros ejemplos de tipos de publicación son Portafolio, Testimonios, Productos, etc.
En la imagen podemos ver los Post Types que incluye WordPress por defecto: Entradas, Medios, Páginas y Comentarios. Y también vemos uno creado por nosotros: Películas.
Con Post Type del plugin JetEngine incluido en la suite Crocoblock, puedes crear tus propios Custom Post Types (tipos de publicaciones personalizas) y llamarlos como quieras. Por ejemplo, si tienes un sitio web de películas, quizá quieras crear un tipo de publicación para añadir películas. Este tipo de publicación puede tener diferentes campos personalizados e incluso su propia estructura de Taxonomías (Por ejemplo: categorías y etiquetas) personalizadas.
¿Qué son las taxonomías?
La taxonomía en WordPress son una de esas cosas que todos usan, pero no saben que la están usando. Las taxonomías de WordPress, derivadas del método de clasificación biológica taxonomía Linnaean, se utilizan como una forma de agrupar publicaciones y tipos de publicaciones personalizadas.
WordPress tiene dos taxonomías muy populares que la gente usa de forma regular: Categorías y Etiquetas y que nos permiten clasificar las publicaciones para luego poder obtener listados de las mismas filtrándolas por categorías o etiquetas.
¿Qué son los terms o términos en WordPress?
En WordPress, los terms o términos se refieren a los diferentes elementos incluidos en una taxonomía. Por ejemplo, las entradas de un sitio web tiene la taxonomía categorías, y dentro de categorías hemos creado diferentes términos (terms) que nos ayudan a clasificar nuestras publicaciones. También podemos crear diferentes estiquetas para asignarlas a nuestras publicaciones, cada una de estas etiquetas es un término (term).
Por lo que podemos decir que el Post Type Entradas tiene dos taxonomías (categorías y etiquetas) y en estas taxonomías podemos crear tantos términos como queramos. Cómo podemos ver en la imagen Gestión del tiempo, Productividad, Escribiendo, … son terminos de la taxonomía categoría. Y Básico es un término de la taxonomía etiqueta. La diferencia entre estas dos taxonomías es que categorías es jerárquica y etiquetas no jerarquica.

1. Cómo crear un nuevo Tipo de Publicación Personalizada o CPT
Antes de nada tienes que instalar y activar el plugin JetEngine de la suite Crocoblock. Si no lo has hecho aún, accede al panel de administración de WordPress, ve a la sección Crocoblock del menú y haz clic en la opción del menú Update & Installation. Desde aquí podrás instalar y activar cualquiera de los plugins de esta suite.
Accede al panel de administración de WordPress, ve a la sección JetEngine del menú lateral de la izquierda y haz clic en Post Type.
Aquí verás la Lista de tipos de publicaciones personalizadas, donde se mostrarán todos tus CPT cuando los tengas. Haz clic en el botón Add New (Añadir nuevo) para crear tu primer CPT.

2. Configura tu CPT
Ahora debes completar la información necesaria para crear tu nuevo tipo de publicación personalizada.
General Settings (Configuración general)

- Post Type Name (Nombre del tipo de publicación). Este es el título del CPT que estará visible en el listado de tipos de publicaciones.
- Post Type Slug (Slug del tipo de publicación). Se genera automáticamente a partir del nombre que ingresaste anteriormente. El slug se usará para el enlace permanente del archivo de este CPT, ejemplo https://dominio.com/películas.
- “Edit post type / meta box” link (Enlace “Editar tipo de publicación / cuadro meta”). Esta opción crea un acceso directo desde cada página de edición de publicaciones de este tipo personalizado a la página en la que te encuentras ahora. Si está habilitado, aparece un pequeño ícono con forma de engranaje en la esquina superior derecha del bloque de metacampos de una página de edición de publicaciones. Cuando el usuario haga clic en él, accederá a la página de edición de Tipo de publicación personalizada.

Labels (Etiquetas)
Como el Custom Post Type está visible en el panel de aministración de WordPress, su nombre se utilizará para varias opciones. En el bloque Labels (Etiquetas) puedes traducir todas estas etiquetas. Por ejemplo, en lugar de la opción Add New Post, puedes cambiarlo por Agregar nueva película. Revisa la lista de etiquetas y actualiza su traducción. En la siguiente imagen puedes ver un ejemplo de todas las traducciones.

Advanced Settings (Ajustes avanzados)
En el bloque de Configuración avanzada hay un conjunto de funciones que están conectadas al CPT que se muestra en el escritorio de WordPress.
Si estas opciones son díficiles de interpretar para ti, déjalas tal como vienen por defecto y listo.
- Is Public (Es público). Mientras esta opción esté habilitada, el CPT estará visible y accesible en el escritorio y lo pueden ver tanto los administradores como los usuarios.
- Exclude From Search (Excluir de la búsqueda). Puedes crear un CPT que solo usarán los administradores. En este caso, puedes habilitar esta opción y las publicaciones de este tipo personalizado no estarán disponibles para las herramientas de búsqueda del front-end (parte que ve el usuario).
- Publicly Queryable (Consultable públicamente). Este conmutador está conectado con el de Is Public (Es público). si está habilitado, las consultas de este CPT se pueden realizar en el front-end (parte que ve el usuario).
- Show Admin UI (Mostrar la interfaz de usuario del administrador). Si desactivas esta opción, la pestaña o enlace para editar las publicaciones de tipo personalizado desaparecerá del panel de control. Podrás ver el listado de publicaciones pero no editarlas.
- Show in Admin Menu, Show in Naw Menu, Show in Rest API (Mostrar en el menú de administración, Mostrar en el menú de navegación, Mostrar en la API Rest). Esos tres conmutadores permiten configurar la visibilidad del CPT de manera más específica. Puede decidir ocultar el CPT del menú de administración, el menú de navegación o la API REST.

- Register Query Var (Registrar consulta Var). Si activas este conmutador, se registrará un query_var para este CPT.
- Rewrite (Reescribe). Activa la posibilidad de reescribir el slug del archivo de este tipo de publicaciones.
- Rewrite Slug (Reescribir slug). Para poder usar esta campo es necesario que esté activado el anterior(Rewrite), desde aquí podemos reescribir el slug de este tipo de prublicaciones y cambiarlo por otro.
- Rewrite With Front. Similar al anterior pero a través de $front property.
- Capability Type (Tipo de capacidad). En este campo, defines qué cadena utilizará WP para desarrollar las capacidades de este CPT, por defecto post.

- Has Archive (Tiene archivo). Activa este conmutador si quieres que el CPT tenga archivo de publicaciones. El archivo de publicaciones es esa página donde se muestra el listado de todas las publicaciones.
- Hierarchial (Jerarquial). Si quieres que este tipo de publicación sea jearárquico activa esta opción. Quiere decir que las publicaciones puedan tener una publicación superior, ejemplo las páginas.
- Menu Position (Posición en el menú). El número que ingreses aquí será el número de posición en la que se mostrará la pestaña de este CPT en el menú de navegación del Panel de Administración de WordPress.
- Menu Icon (Icono de menú). Cada pestaña del menú de navegación del panel de administración de WordPress tiene un icono. Aquí puedes elegir uno para la pestaña de tu CPT.
- Supports (Soporte). Desde este menú desplegable, puede elegir los bloques de soporte adicionales que se mostrarán en la página del editor del CPT. Puedes incluir: Título (Title), Editor Gutenberg (Editor), Comentarios (Comments), Revisiones (Revisions), Trackbacks, Autor (Author), Estracto (Excerpt), Atributos de página, Imagen destacada (Thumbnail (Featured Image)), Campos personalizados y Formatos de Publicación.

Meta Fields (Metacampos)
Ahora vamos ver como se configuran los metacampos personalizados creados con el complemento JetEngine y analizaremos más de cerca los tipos de estos campos.
¿Qué es un Meta Fields o Metacampo?
Los metacampos permiten añadir información adicional a tu publicación personalizada, que luego podrás mostrarlos en el front-end (parte que ve el usuario) con la ayuda de los widgets dinámicos. También podrás usarlos para realizar filtros sobre el listado de publicaciones.
En el caso de publicaciones sencillas como las Entradas, solo tienen un Título, el cuerpo que editamos con el editor Gutenberg y una imagen destacada. Pero con JetEngine podemos añadir metacampos a nuestro gusto de diferentes tipos. Estos son todos los tipos de metacampos que Post Type de JetEngine nos permite añadir:
- Text (Texto)
- Date (Fecha)
- Time (Tiempo)
- Datetime (Fecha y hora)
- Textarea (Área de Texto)
- WYSIWYG (Editor de texto enriquecido)
- Switcher (Conmutador)
- Checkbox (Casilla de chequeo)
- Iconpicker (Selector de iconos)
- Media (Archivo de medios)
- Gallery (Galería de medios)
- Radio (Botón radio)
- Repeater (Repetidor)
- Select (Selector desplegable)
- Number (Número)
- Colorpicker (Selector de color)
- Posts (Publicaciones)
- HTML (Código HTML)

Puedes arrastrar y soltar los campos para ordenarlos a situando el puntero del ratón sobre este icono
Configuración del metacampo
Para crear un metacampo lo primero es hacer clic en el botón New Meta Field (Nuevo metacampo). Depués debemos rellenar el formulario de este nuevo metacampo.

- Label (Etiqueta): escribe aquí el título del campo. Así es como se te mostrará a ti y a otros usuarios más adelante.
- Name/ID (Nombre/Identificador): este valor se genera automáticamente, de acuerdo con el texto que ingreses en el campo Label (Etiqueta). Si quieres cambiarlo, ten en cuenta que este ID no debe incluir espacios y asegúrate de que solo contenga letras y números. El autocompletar también agregará un número aleatorio al nombre si no es único. Los campos con ID similares podrían confundirte y causarte algunos problemas si quieres usarlos en otro lugar. Por eso que el autocompletar evita el uso de ID similares.
- Object type (Tipo de objeto): aquí puedes elegir el tipo de objeto. La opción Campo significa que podrás agregar valores allí. Tab (Pestaña), Accordion (Acordeón) y Endpoint (Punto final) crearán un diseño específico. Puedes agrupar uno o varios metacampos en una Pestaña (usando Tab + Endpoint) o en un Acordeón (Accordion + Endpoint).
Recuerda que puedes arrastrar y soltar los campos que para situarlos entre Pestaña y Endpoint o entre Accordion y Endpoint, usa para ello este icono

Tipos de metacampo
Cuando seleccionas “Field” en Objet Type (Tipo de campo) ahora tenemos que seleccionar que tipo de campo que queremos usar, esto lo haremos en la en la opción Field Type (Tipo de campo). A continuación vamos a ver cada uno de los tipos.
Text (Texto)
Si quieres agregar un campo adicional con texto personalizado al tipo de publicación, este tipo cumple perfectamente con tus requisitos. Puedes agregar información adicional sobre publicaciones usando este campo. Además, puedes especificar el número máximo de caracteres disponible en el campo.

Date (Fecha)
Este metacampo es ideal para añadir fechas de eventos, reuniones, conferencias, etc. También puedes guardar la fecha como una marca de tiempo activando el conmutador Save as timestamp esto te permitirá hacer consultas y filtros por fecha. Este metacampo te permite añadir la fecha de forma manual o a través de una caja calendario, como prefieras.
El formato de entrada de fecha es yy-mm-dd, ejemplo 22/12/30, pero no te preocupes porque cuando representemos este campo en el Front-end (parte que ve el usuario) podemos formatear la salida a nuestro gusto.

Time (Tiempo)
Este es un tipo apropiado para agregar una marca de tiempo en tus publicaciones. Agrega una hora concreta para eventos, reuniones, conferencias o la duración en este metacampo. Puedes usar la caja para seleccionar horas y minutos con los controles deslizantes o editar con el teclado con este formato hh:mm:ss, desde el teclado puedes indicar horas, minutos y segundos, por ejemplo 01:25:15.
Datetime (Fecha y hora)
permite seleccionar la fecha y la hora en el mismo lugar. También puedes guardar la fecha y hora como una marca de tiempo activando el conmutador Save as timestamp, esto te dará la posibilidad de hacer consultas y filtros por fecha. Este metacampo te permite añadir la fecha y hora de forma manual o a través de una caja calendario, como prefieras.
El formato de entrada de fecha es yy-mm-ddThh:mm, ejemplo 22-11-25T15:27, pero no te preocupes porque cuando representemos este campo en el Front-end (parte que ve el usuario) podemos formatear la salida a nuestro gusto.
Textarea (Área de texto)
Puedes usar este tipo para agregar un área textual a las publicaciones con la disposición del texto línea por línea. Además, puedes establecer el límite de caracteres para este valor de campo.

WYSIWYG (Editor con texto enriquecido)
Este tipo de metacampo incluye un editor básico de texto enriquecido con el que podrás formatear el texto a tu gusto añadiendo al texto formato negrita, cursiva, tamaño, color, viñetas, enlaces, etc.

Switcher (Conmutador o interruptor)
Puedes agregar un conmutador como campo personalizado a tus publicaciones, productos, eventos, etc., lo que te permite activar/desactivar la opción apropiada en el bloque de metacampo. También puedes usar este conmutador para establecer lógica condicional de visualización de otro metacampo. Por ejemplo si este conmutador no está activado no se muestran otro u otros metacampos.

Checkbox (Caja de chequeo)
Este tipo te da la opción de agregar casillas de verificación con diferentes opciones. Puedes poner una o varias y añadir estas opciones de forma manual o a través de un glosario que podrás crear desde el menú JetEngine > JetEngine > Glossaries. Crear un glosario te permite usar ese mismo glosario y diferentes metacampos incluso de otros Post Type.
Iconpicker (Selector de iconos)
Este metacampo incluye un selector de íconos con el que podrás elegir un ícono apropiado para cada publicación.
Media (Archivo de medios)
Este tipo ayudará a agregar un archivo multimedia, imágen en particular, aunque no debes olvidar que también puedes usar la imagen destacada para añadir una imagen a la publicación. También puedes añadir cualquier tipo de archivo que puedas subir a la biblioteca de medios de WordPress (PDF, MP3, MP4, …).
Gallery (Galería de medios)
Este tipo ayudará a agregar uno o varios archivos multimedia a la publicación, especialmente imágenes, aunque también puedes añadir cualquier tipo de archivo que puedas subir a la biblioteca de medios de WordPress (PDF, MP3, MP4, …).
Radio
El tipo de radio es perfecto para agregar opciones de radio. Se diferencian de las casillas de chequeo en que los botones de radio solo podemos seleccionar una de las opciones disponibles. Puedes añadir las opciones disponibles de forma manual o a través de un glosario que podrás crear desde el menú JetEngine > JetEngine > Glossaries. Crear un glosario te permite usar ese mismo glosario y diferentes metacampos incluso de otros Post Type.
Repeater (Repetición)
Este tipo ayudará a agregar el bloque de contenido con un número de elementor indeterminado, podrás agregar tantos como necesites. Además puedes seleccionar el tipo de metacampo (Text, Date, Time, Datetime, …), además puedes incluir más de un metacampo en cada elemento.
Select (Selector desplegable)
Usa este tipo de contenido para agregar un selector desplegable para la publicación. En caso de que habilite Permitir para seleccionar múltiples opciones de valores, podrá seleccionar varias opciones a la vez. Este valor también se puede mostrar utilizando la callback propio para un campo dinámico.
Number (Número)
Si necesita un campo que se pueda rellenar solo con números, este será perfecto.
Colorpicker (Selector de color)
Con este tipo de metacampo podrás seleccionar un color usando la paleta de colores o tecleando su código hex.
Posts (Publicaciones)
Este tipo permite seleccionar una publicación de otro CPT o incluso del mismo CTP que estás creando.

HTML (Código HTML)
Puedes agregar código HTML personalizado a este metacampo. Será útil para insertar código embebido como videos, audios, documentos, etc. Este código no se mostrará en la página de edición de publicaciones, lo que se verá es la ejecución del propio código, nos puede servir para añadir ayuda para el editor de publicaciones. Este metacampo realmente no almacena nada solo representa el código que introduzcamos en la página de edición.

Valores personalizados en los tipos Checkbox y Radio
¡ATENCIÓN!
La siguiente funcionalidad se puede utilizar para publicaciones personalizadas, taxonomías personalizadas y página de opciones.
Cuando eliges los tipos de metacampo Checkbox (Casilla de chequeo) o Radio, aparecen dos opciones adicionales: Allow Custom (Permitir opciones personalizadas) y Get options from the glossary (Obtener desde un glosario).

Allow Custom (Permitir valores personalizadas)
Esta opción permite agregar valores personalizados a esos campos, guardándolos en una base de datos de la publicación actual pero sin guardarlos en la lista de valores predeterminados.
Si quieres que esos valores personalizados se apliquen a todas las publicaciones en el CPT, activa la opción Save Custom (Guardar personalizado) y todas sus publicaciones contendrán este nuevo valor.
¡ATENCIÓN!
El metacampo de tipo Radio se configura por analogía con la casilla de verificación descrita anteriormente.
Get options from the glossary (Obtener opciones desde un glosario)
Si activa esta opción, te permitirá agregar las opciones de un Glosario a la lista. Podrás especificar el glosario concreto. Para crear un nuevo glosario ve a JetEngine > JetEngine> Glossaries y presione el botón +New Glossary (Nuevo glosario).

Save as array (Guardar como matriz)
Cuando esta opción está activada, los valores marcados se almacenarán como una matriz PHP simple. Necesitas usar esta opción si vas a editar este campo en un formulario en el front-end. Si no habilitas la opción Guardar como matriz, el campo no se completará previamente en el formulario.
¡NOTA!
Se recomienda activar esta opción al crear el metacampo. Si llenas este campo en su CPT y luego habilitas la opción Save as array (Guardar como matriz), entonces el campo se restablecerá y deberás agregar los datos nuevamente.
Otros parámetros de los metacampos
Existen los parámetros Description (Descripción) y Field width (Ancho del campo), donde puedes agregar un texto informativo para el editor y establecer el ancho del metacampo.
Puedes especificar el Character limit (límite de caracteres) y establecer un Default value (Valor predeterminado) para el campo actual. Además, es posible habilitar la opción Is required (Se requiere) para hacer que el campo sea obligatorio.
El campo Conditional logic (Lógica condicional) te permite hacer que los campos sean visibles solo si se cumplen las condiciones.

¡NOTA!
La opción Default value (Valor predeterminado) está disponible solo para tipos de campos de texto.
Después de haber agregado tantos metacampos como necesites, haga clic en el botón Update Post Type (Actualizar Meta Box) para guardar los cambios.
Puedes mostrar el contenido que has agregado en los metacampos personalizados utilizando Elementor en los listados y las plantillas.
Crear taxonomías a un Custom Post Type de JetEngine
En el menú de del panel de administración de WordPress haz clic en JetEngine > Taxonomies (Taxonomías) y luego haz clic en el botón Add New (Añadir nueva) para continuar y crear una nueva taxonomía. El proceso es muy similar a la creación de un CPT. Hay los mismos bloques: General Settings (Configuración general), Labels (Etiquetas) , Advanced Settings (Configuración avanzada) y Meta fields (metacampos).
Recuerda al principio de este Tema explico que son Taxonomías y Términos.
1. General Settings (Configuración general)
En Configuración general hay campos como:
- Taxonomie Name (Nombre de taxonomía): establezca el nombre de la taxonomía, por ejemplo, Proyectos o Cartera, depende del tipo de publicación que se cree esta taxonomía.
- Slug de la Taxonomía (Taxonomy Slug): se rellena de forma automática. El slug debe estar compuesto solo por los caracteres letras (sin signos de acentuación), números y ‘-‘ o ‘_’. Por ejemplo nombre_de_taxonomia.
- Tipo de publicación: de la lista, elige para que tipo de publicación se creará esta taxonomía, puede ser para uno que hayamos creado nosotros o para una ya existente.
- ‘Edit taxonomy/meta box’ link (Enlace ‘Editar taxonomía/metabox’): Esto en mi opinión esto no sirve para nada. En la ficha de Post Type si tiene una función, pero en el caso de Taxonomías no he visto que tenga ninguna.

2. Labels (Etiquetas)
La taxonomía está visible en el panel de aministración de WordPress, su nombre se utilizará para varias opciones. En el bloque Labels (Etiquetas) puedes traducir todas estas etiquetas. Por ejemplo, en lugar de la opción Add New Category, puedes cambiarlo por Añadir nueva categoría. Revisa la lista de etiquetas y actualiza su traducción.
En la siguiente imagen puedes ver un ejemplo de todas las traducciones para un tipo de categoría que he llamado Género (diseñada para crear generós de películas).

3. Advanced Settings (Configuración avanzada)
Este bloque le permite configurar el modo de visualización de la taxonomía. Simplemente decide si quieres que sea público o que se muestre en el menú de administración, etc. La única opción a destacar es Hierarchical (Jerarquica), si activamos esta casilla se mostrará tal como se muestran las Categorías en las Entradas, si la dejas desactivada se comportará tal como se comportan las Etiquetas en las Entradas.
Tiene las mismas opciones que en la ficha del Post Type que puedes ver aquí.

4. Meta fields (Metacampos)
Úselos para mostrar cualquier información adicional para la taxonomía, como medios, opciones de radio, repetidores, etc. También puede personalizar el ancho de los campos para hacer que ocupen menos espacio y organizarlos uno al lado del otro.
Funciona exactamente igual que en los Post Types que puedes ver aquí.
Añadir y editar taxonomía
Una vez hayas creado la taxonomía podrás añadir y editar los términos desde el menú de WordPress.
Podrás seleccionar los términos para una publicación personalizada en la columna derecha.

Si has llegado hasta aquí espero que este tutorial te haya servido de ayuda, si es así sería genial si me dejaras una valoración.
