blog webempresa

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

por | May 5, 2023 | Aprender WordPress

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

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

Conocer qué son los Custom Post Type y qué puedes conseguir con ellos en tu sitio web te va a 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.

Al utilizarlos añades características o funcionalidades que necesitas en tu web sin tener que recurrir a plugins específicos, que son difíciles de encontrar y no siempre se adaptan a lo que por defecto encuentras en WordPress.

  ¿Qué 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 de WordPress.

Actualmente WordPress incorpora muchas maneras de mejorar las Entradas (en las que más me centro 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é sirven los Custom Post Type en WordPress?

 

La utilización de campos personalizados está muy extendida 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 en WordPress 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.

Para ilustrarte casos de uso de CPTs te voy a mostrar 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

 

El Directorio de Temas para WordPress es una biblioteca de plantillas de diseño que puedes utilizar para personalizar la apariencia de tu sitio web.

En otras palabras, es un lugar donde puedes encontrar miles de temas gratuitos y premium para usar en WordPress, pudiendo escoger entre muchos estilos y características adaptables.

Este directorio de Temas está estructurado con varias opciones disponibles, entre las que destaco el filtro por tipo de «layout», «características del tema» y «temática».

Filtro de búsqueda del directorio de Temas de WordPress

Pues hazte a la idea que tanto en los filtros como en la representación de resultados de las búsquedas en el navegador, están presentes, en segundo plano, los custom post types.

En la siguiente imagen puedes ver la home del directorio de Temas para WordPress recomendados por Webempresa, que también utiliza CPT para la gestión de campos, contenidos y mostrar los resultados en pantalla, en el que se involucra adicionalmente al plugin ACF.

Directorio Temas WordPress

  Directorio de Plugins para WordPress

 

Al igual que te he mostrado el directorio de Webempresa para Temas recomendados de este maravilloso CMS, también puedes ver el directorio de plugins recomendados por Webempresa, que habitualmente utilizamos en nuestras webs y recomendamos a los clientes por su estabilidad, características y facilidad de uso.

Directorio de Plugins de WordPress

  Proyecto Webempresa Social

 

Otro sitio creado con campos personalizados y un poco de magia de la nuestra para poner en marcha un directorio de sitios web que en Webempresa alojamos gratuitamente en nuestros servidores, ya que se trata de proyectos sociales que contribuyen a crear un mundo más solidario y mejor.

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 a 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 Campo Personalizado.

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 aquí 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 guarda 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; adicionalmente HTML y CSS son convenientes saber gestionar, 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, pero no lo abordo en el artículo, 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.

  ¿Son los custom post types la mejor solución?

 

Si bien los custom post types son más completos y complejos que los campos personalizados, estos son una herramienta muy útil en WordPress para construir contenido personalizado, aunque no son la única opción disponible.

En este sentido, hay otras alternativas que pueden resultar igualmente efectivas en diferentes situaciones, pues no es lo mismo construir un directorio de contenidos, como los citados de ejemplo más arriba, que necesitar un formulario con varios campos, en cuyo caso no son la solución.

Además, para según que contenidos y su maquetación se pueden evaluar alternativas como los page builders o constructores de páginas, pues son plugins que permiten crear diseños personalizados utilizando una interfaz visual y muy socorridos para cosas muy puntuales.

Y como te mencionaba, si quieres construir un formulario con varios «campos personalizados», también existen plugins específicos para crear este tipo de formularios personalizados, como Gravity Forms o Contact Form 7, que te permiten recoger información específica, más allá del típico formulario de contacto y sin necesidad de crear CPTs para estas cuestiones.

Por tanto, si bien los custom post types son una opción muy útil para construir contenido personalizado en WordPress, hay otras alternativas que pueden ser igualmente efectivas en diferentes situaciones.

Analiza siempre qué información vas a gestionar en tu sitio web y luego explora las opciones disponibles antes de adoptar un método que después no se ajuste a lo que buscabas.

  Conclusiones

 

Con este artículo he tratado de darte una idea del uso que pueden tener los CPTs en WordPress, formas de usarlos y sacarles rendimiento.

Ahora que has aprendido a crear un Custom Post Type en WordPress, es hora de ponerte manos al teclado para crear los tuyos.

Esto puede parecerte 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 sí, 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.

¡Haz que tus campos personalizados se adapten a tus contenidos!

¿Te ha resultado útil este artículo?

Promo abril