Hosting WordPress Webempresa

Custom post type, ¿Qué son y cómo crearlos?

por | Ago 27, 2022 | Plugins WordPress

Custom Post Type, ¿Qué son y cómo crearlos?

  Introducción

 

Los custom post types ayudan a enriquecer los contenidos que de forma nativa (por defecto) creas con WordPress, vitaminando con campos y otros elementos las Entradas y las Páginas principalmente, aunque se puede extender a otros contenidos de WordPress.

Conocer qué son los Custom Post Type y qué puedes conseguir integrándolos en tu sitio web te va ayudar a idear formas diferentes y mejoradas de presentar tus contenidos, sean de una u otra temática, aportando valor añadido a los visitantes, lectores o clientes y consiguiendo una mejor granulación de los datos que generas y que luego puedes aprovechar mostrándolos en diferentes lugares o páginas de tu web sin tener que escribirlos una y otra vez.

Las aplicaciones para los CPTs son inmensas, ya que lo mismo te montas un recetario de cocina perfectamente estructurado con campos, como pones en marcha una base de conocimiento de razas de perros, de productos agrícolas, o de tu librería particular o comercial y le añades aquellas características o funcionalidades que requieras sin tener que recurrir a plugins específicos, que son difíciles de encontrar y no siempre se adaptan a tus contenidos ¡Haz que tus campos personalizados se adapten a tus contenidos!

  ¿Que son los Custom Post Type?

 

Los Tipos de Entrada Personalizada (del inglés Custom Post Type) se utilizan para convertir un sitio web normal de WordPress en un sistema de gestión de contenidos mucho más dinámico y extendido para mostrar contenidos personalizados a partir de Entradas (Post).

Por defecto WordPress ya incorpora de forma nativa funcionalidades para mejorar mediante CPTs los contenidos, por ejemplo:

  • Entradas (Post) – Las típicas publicaciones del Blog.
  • Páginas – Las páginas estáticas habituales (Quienes Somos, Política de Privacidad, etc.)

Estos elementos WordPress los almacena en la tabla _post de la base de datos.

Hay otros elementos que pueden mejorarse también mediante el uso de custom post types como son los adjuntos, los menús, las revisiones o el CSS personalizado.

Actualmente WordPress incorpora muchas maneras de mejorar las Entradas (en las que más nos centraremos en este artículo) utilizar plugins específicos para gestionar los CPTs es parte del encanto de todo este proceso, ya que podrás exprimir más el potencial de añadir campos que tengan infinidad de comportamientos para gestionar por ejemplo tu colección de recetas de cocina en tu sitio web.

Todo lo que gestiones mediante CPTs luego podrás aprovecharlo en cualquier parte de tu web, y mostrar información completa o parcial de los datos almacenados a través de los campos personalizados de WordPress en cualquier área de tu Tema en uso.

No debes confundir lo que son los CPTs o custom post types con los campos personalizados o custom fields que WordPress incorpora de forma nativa para entradas y algunos plugins los usan para añadir campos extra en entradas, páginas o características de plugins como por ejemplo Sensei LMS.

  ¿Para qué sirve Custom Post Type?

 

El uso de campos personalizados en WordPress está muy extendido y son muchos los usos que se le dan para la creación de páginas donde se muestren propiedades inmobiliarias, venta de vehículos u otros bienes de consumo, fichas de equipos deportivos, y la lista podría crecer en usos y aplicaciones tanto como se te ocurra, porque ciertamente no tiene límites.

Imagínate que tienes una cantidad de Entradas publicadas con recetas de cocina en tu Blog que incluyen estos elementos:

  • Título: Donde pones el nombre de la receta
  • Texto del cuerpo de la Entrada: Aquí escribes el desarrollo de la receta, incluyendo los condimentos, y material necesario para realizar las recetas, así como los tiempos de cocción e incluso imágenes y vídeos. Ufff, vamos, aquí metes todo “con calzador” sea como sea.
  • Etiquetas: Extendiendo las funcionalidades de taxonomía que te brinda WordPress aprovechas para usar “palabras clave” del contenido de la receta para vincular (relacionar) con otras recetas y con las búsquedas.

Te pongo una captura de ejemplo de lo que sería una Entrada con una receta de cocina, donde el título de la entrada sería el nombre de la receta, el cuerpo de la entrada albergaría el texto descriptivo de la receta, además de los ingredientes, pasos de realización e imágenes o vídeos, y las etiquetas de la propia entrada que servirían como “taxonomías” para segmentar y relacionar esta receta con otras.

Post de una receta de cocina

Una “Entrada” de WordPress, con Gutenberg, sin CPTs

¡Y ya está! no hay más ¿o sí?

Pues ahora imagina que te metes de lleno con los Custom Post Types y decides crear campos adicionales a las entradas, que servirán para tus recetas.

  • Tiempo de cocción: Un dato interesante de mostrar en un campo para permitir que el usuario seleccione tus recetas por tiempos de cocción.
  • Ingredientes: Separas por campos los ingredientes, ya sea una lista o campos incrementales, para que los ingredientes puedan incluso ser seleccionados de forma individual.
  • Galería de imágenes: Puedes crear un campo para que tenga el comportamiento de galería de imágenes donde puedas subir “en lote” o individualmente imágenes de tus recetas y que se muestres siempre de determinada manera y con estilos CSS personalizados.
  • Vídeos: Casi lo mismo que las galerías, pero para tus vídeos.

Además de esto podrías crear un campo de categorización de recetas por tipo de recetas, tales como “Postres”, “Guisos”, “Sopas”, “Pescados”, etc., de manera que el usuario luego pueda, en un selector, escoger que tipo de recetas por categorización busca y centrarse solo en esas y no tener que ver todas o andar buscándolas entre el resto.

Como ves con estos ejemplos, los Custom Post Types sirven para mucho, es solo cuestión de saber lo que quieres mostrar, cómo lo quieres hacer y de qué manera vas a granular los contenidos.

  Ejemplos de custom post type

 

Hay muchos sitios en internet que utilizan campos personalizados en WordPress para mostrar contenidos, por ejemplo sitios de ventas de coches u otros bienes de consumo, o webs dedicadas a los bienes raíces, donde se muestran propiedades inmobiliarias que suelen contener bastantes campos personalizados, buscador con filtros, etc., para que los usuarios puedan encontrar los contenidos de forma más ordenada, a modo de fichas.

Como ejemplos de CPTs te voy a poner 3 que incluso puedes ver online, para evaluar la información que muestran y que están construidos desde cero con CPTs y ACF.

  Directorio de Temas para WordPress

Directorio Temas WordPress

  Directorio de Plugins para WordPress

Directorio de Plugins de WordPress

  Proyecto Webempresa Social

 

Directorio Webempresa Social

  Cómo crear un custom post type con un plugin

 

Se trata del método más sencillo y rápido de crear CPTs en WordPress, y por ende el más extendido y recomendado, sobre todo si lo tuyo no es el código. Para estos casos puedes utilizar el plugin Custom Post Type UI.

Plugin Custom Post Type UI

Una vez instalas y activas el plugin, en el dashboard de WordPress vas al menú CPT UI que aparece ahora.

Con este plugin puedes crear un nuevo custom post type y también añadir taxonomías personalizadas.

  Pasos para crear tu primer CPT

 

No es muy complejo poner en marcha un Post Personalizado, aunque si hay que seguir una serie de pasos necesarios para contemplar todos los aspectos de los campos personalizados y no dejarse nada por el camino, por lo que hay una serie de apartados que hay que cumplimentar o configurar debidamente.

  • Configuración básica
  • Etiquetas adicionales
  • Ajustes

Dentro de cada unos de estos apartados hay una serie de campos que le pasan parámetros importantes al campo personalizado, que te desgloso a continuación.

  Configuración básica

 

Aquí defines el nombre global del CPT así como su etiqueta.

  • Slug del tipo de contenido: El slug/nombre del tipo de contenido. Se utiliza en varias consultas de contenido de tipo de contenido.
  • Etiqueta plural: Utilizado para el elemento de menú de administración del tipo de contenido.
  • Etiqueta singular: Se usa cuando hace falta una etiqueta en singular.
  • Relleno automático de las etiquetas: Rellena las etiquetas adicionales en base a las etiquetas elegidas.

Siguiendo el ejemplo de las recetas mediante CPTs, un ejemplo de cómo crear un tipo de contenido personalizado para por ejemplo gestionar las “recetas de cocina” sería el mostrado en la imagen.

Creación CPT Recetas

Creación del CPT de Recetas de Cocina

Una vez estableces esos valores puedes hacer clic en el botón azul Añadir tipo de contenido para que se cree el CPT y verás como aparecen 3 nuevas pestañas encima del primer bloque, para poder realizar acciones adicionales en adelante.

  • Editar tipos de contenido
  • Ver tipos de contenidos
  • Importar/Exportar Tipos de publicaciones
Nuevas pestañas del CPT

Estos apartados los puedes utilizar para realizar acciones sobre el CPT que has creado nuevo y que se llamará a partir de ahora “Recetas” (o el nombre que tu hayas puesto).

Adicionalmente, el menú izquierdo del dashboard de WordPress, y debajo de Páginas o Comentarios, te aparecerá el acceso directo mediante un ítem de menú nuevo llamado “Recetas”.

Item Recetas en el dashboard

Si haces clic en el ítem de menú “Recetas” vas a la vista de elementos de este nuevo CPT, aunque no se mostrarán contenidos ya que lo acabas de crear y no hay nada que mostrar.

Menú Recetas vacio

Si vuelves al menú CPT IU > Añadir/Editar tipos de contenidos, verás que te aparece vacío, y “Recetas” ya no muestra información en esa vista de página. Esto sucede porque una vez que se crea un CPT, para poder realizar acciones sobre el mismo, hay que cargarlo previamente y esto se realiza desde la pestaña CPT UI > Añadir/Editar tipos de contenidos > Editar tipos de contenido > Elegir > Seleccionar en el selector desplegable el CPT (si hay más de uno) sobre el que vas a realizar cambios.

Editar CPT Recetas

  Etiquetas adicionales

 

Una vez que ya has creado el CPT, si anteriormente no rellenaste la información del apartado “Etiquetas adicionales y Ajustes” puedes hacerlo posteriormente, tras editar dicho Tipo de Campos Personalizados.

En este bloque tienes varios campos a rellenar, que en la mayoría de casos se basan en definir el “nombre de la etiqueta” de cada campo, en caso de que los quieres personalizar, aunque siempre puedes dejarlos por defecto, ya que actualmente estos campos, en las nuevas versiones de “CPT IU” vienen correctamente traducidos al castellano.

La recomendación es que establezcas tus propias etiquetas, basadas en la temática que vayas a abordar con este CPT.
Configuración textos CPT

  Ajustes

 

Este bloque es de los más importantes una vez creado el CPT, ya que es donde defines aspectos esenciales del comportamiento de dicho CPT, su visibilidad, el tipo de soporte que tendrá con otros elementos nativos de WordPress, como el extracto, los comentarios, autor, revisiones, etc., así como la gestión de sus taxonomías.

Ajustes del CPT

Si por ejemplo quieres que el ítem del CPT, en nuestro ejemplo “Recetas” se muestre en otra posición del menú izquierdo del dashboard, en CPT UI > Añadir/Editar tipos de Contenidos > Editar tipos de contenido > Ajustes > Posición del menú, puedes establecer el rango de profundidad entre 5 y 100 para que este sea visible más arriba o abajo del dashboard, barra del menú vertical.

El campo “Soportes” te permite activar que otros campos nativos de WordPress serán visibles cuando un usuario con privilegios (rol) para crear o editar contenidos de tus CPTs de de alta datos, en nuestro caso “nuevas recetas de cocina”, ya que podrá ver esos campos adicionales naturales de WordPress.

Aquellos campos que son visibles para el rol más básico (suscriptor), también podrán ser visibles en el frontal del sitio, en la ficha del CPT, es decir, en la “receta”.

Campos adicionales disponibles en el CPT

No olvides guardar los cambios que apliques tras la edición de tus CPTs, en el botón azul Guardar tipo de contenido.

  Cómo crear un custom post type sin plugin

 

Este método solo es recomendable si tienes dominio de PHP y adicionalmente HTML y CSS. ya que te va a ser necesario para crear un CPT sin el uso de plugins.

Cuando creas un post personalizado con un plugin, si desactivas el plugin el CPT desaparece, deja de estar visible en tu sitio, ya sea en el dashboard o en el frontal, donde muestres los campos con resultados.

Si creas un CPT de forma manual, no se ve afectado por la activación o desactivación de plugins, ya que es código que se ejecuta directamente, sin intermediarios, por tanto, no desaparece.

¿Cómo es un trozo de código de un post personalizado en modo código?

Pues más o menos así, dependiendo de tu caso y aplicación que le des:


/** Inicio del Custom Post Type */

function create_posttype() {
register_post_type( 'recetas',
// Opciones CPT

array(
  'labels' => array(
   'name' => __( 'recetas' ),
   'singular_name' => __( 'Recetas' )
  ),
  'public' => true,
  'has_archive' => false,
  'rewrite' => array('slug' => 'recetas'),
 )
);
}
// Conectando la función a la configuración del tema
add_action( 'init', 'create_posttype' );

/* Fin del Custom Post Type */

Una vez añades este código en el functions.php y guardas los cambios, en el dashboard de WordPress aparecerá el ítem de Recetas en el menú izquierdo del dashboard.

Después habría que añadir las declaraciones de campos. Al crear tipos de CPTs es necesario usar init para el gancho en add_action(), y la función register_post_type() tomará los argumentos:


/** Inicio del tipo de post personalizado */

function cw_post_type_recetas() {

$soportes = array(
'title', // título del post
'editor', // contenido del post
'author', // autor del post
'thumbnail', // imágenes destacadas
'excerpt', // extracto de la entrada
'custom-fields', // campos personalizados
'comments', // comentarios de la entrada
'revisions', // revisiones de la entrada
'post-formats', // formatos de las entradas
);

$etiquetas = array(
'nombre' => _x('recetas', 'plural'),
'singular_name' => _x('receta', 'singular'),
'menu_name' => _x('Recetas', 'admin menu'),
'nombre_barra_admin' => _x('Recetas', 'barra admin'),
'add_new' => _x('Añadir nueva', 'add new'),
'add_new_item' => __('Añadir nueva receta'),
'new_item' => __('Nuevas recetas'),
'edit_item' => __('Editar receta'),
'view_item' => __('Ver recetas'),
'all_items' => __('Todas las recetas'),
'search_items' => __('Buscar recetas'),
'not_found' => __('No se han encontrado recetas'),
);

$args = array(
'supports' => $supports,
'labels' => $labels,
'public' => true,
'query_var' => true,
'rewrite' => array('slug' => 'recetas'),
'has_archive' => true,
'hierarchical' => false,
);
register_post_type('recetas', $args);
}
add_action('init', 'cw_post_type_recetas');

/** Fin del tipo de post personalizado */

Variables utilizadas:

  • $supports: Especifica que el tipo de post es compatible y soporta todas las características esenciales.
  • $etiquetas: Especifica que el tipo de post se refiere correctamente al área de administración.
  • $args: Especifica un slug o permalink de la receta y una posición en el menú situada justo debajo del menú Entradas.

Estos pasos mostrados indican cómo registrar los CPTs de WordPress en el dashboard para cualquier tema. Luego habría que añadir una entrada personalizada en el sitio web de WordPress, para ir creando los contenidos, el diseño en pantalla, etc., pero no lo abordo ya que el proceso de crear CPTs mediante código es demasiado manual, y existiendo plugins como Custom Post Type UI ¿realmente merece la pena liarse con código y a tocar functions.php y otros archivos del tema y de WordPress? 🤔

Si quieres profundizar más sobre este tipo de funciones y los parámetros que se usan puedes consultar en el Codex de WordPress.

  Conclusiones

 

Con este artículo he tratado de darte una idea del uso que pueden tener los CPTs en WordPress y formas de usarlos y sacarles rendimiento. Ahora que has aprendido a crear un Custom Post Type en WordPress, algo un poco complejo de realizar, aunque siguiendo tutoriales como este u otros disponibles en Internet puedes crearlos para añadir información adicional, campos y otros elementos útiles para mejorar los contenidos de tu sitio.

Para ampliar conocimientos sobre los custom post types (no los confundas con los “campos personalizados” de WordPress) te recomiendo consultar el Codex de WordPress donde lo explican bien, eso si, a nivel algo técnico, pero ¿quién dijo miedo?

Si quieres ofrecer contenido personalizando explotando las funcionalidades nativas del núcleo de WordPress el uso de plugins para custom post types es el mejor reto al que puedes enfrentarte para mejorar tus conocimientos y las capacidades de tu web.

¿Te ha resultado útil este artículo?

Hosting WPFácil