La guía definitiva para los tipos de publicaciones personalizadas de WordPress

Publicado: 2024-03-26

Hace más de una década, tomé la decisión que me cambió la vida y la carrera de centrarme únicamente en usar WordPress como mi plataforma de publicación y el CMS para el que creo complementos. Las razones principales fueron la excelente documentación, que incluye innumerables publicaciones con fragmentos y tutoriales, y la facilidad para ampliar WordPress. Para mis casos de uso en aquel entonces, la característica más destacada para ampliar WordPress eran los tipos de publicaciones personalizadas.

Mejorados principalmente con la versión 3 de WordPress en 2010, los tipos de publicaciones personalizadas (CPT) se utilizan de muchas maneras. Estoy seguro de que los has conocido sin saberlo. Permítame brindarle una descripción general de los CPT, ejemplos específicos de cómo los usé a lo largo del tiempo, cómo configurarlos usted mismo y cómo lograr aún más con complementos relacionados.

¿Qué son los tipos de publicaciones personalizadas?

El núcleo de WordPress viene con varios tipos de publicaciones. Los más obvios son Publicaciones, Páginas y Archivos Adjuntos.

En WordPress 6.4, hay cuatro más:

  • Revisiones
  • Menús de navegación
  • Plantillas de bloques
  • Partes de plantilla

Dato curioso: los comentarios no son un tipo de publicación. Creo que si WordPress no fuera originalmente una plataforma de blogs con comentarios como parte central, hoy en día también se los manejaría como un tipo de publicación.

Como esto podría sugerir, los tipos de publicaciones no siempre son obvios y no necesariamente son algo visible en la interfaz que describiríamos como "contenido". Son más bien un grupo de elementos relacionados en la base de datos.

Puede agregar más de estas "cosas", que luego se denominarían Tipos de publicaciones "personalizadas".

No es un término oficial de WordPress, pero me gusta la frase Tipos de “contenido” personalizados para cualquier tipo de publicación personalizada visible. Hablaré de algunos ejemplos más adelante.

¿Por qué utilizar un tipo de publicación personalizada?

WP Mayor ha utilizado varios tipos de publicaciones personalizadas a lo largo del tiempo, como las ofertas de por vida que puedes ver ahora mismo.

Personalmente he utilizado tipos de publicaciones personalizadas para muchas cosas.

Las más comunes son las secciones de contenido separadas en los sitios web. Esto tiene más sentido cuando ese contenido debe mostrarse y comportarse de manera diferente a las publicaciones y páginas integradas.

Imaginemos que WP Mayor también tuviera un tipo de publicación dedicada a "Noticias". Con solo registrar este tipo de publicación personalizada, se tendrían los siguientes beneficios:

  • Un elemento distintivo de "Noticias" en el menú de WP Admin.
  • La posibilidad de otorgar a los usuarios y roles de usuario capacidades diferentes a ese tipo.
  • Tenga diferentes plantillas para mostrar noticias individuales en la interfaz.
  • Un archivo separado y un feed de noticias.
  • Los metadatos de publicaciones adicionales se almacenan únicamente con las noticias y se muestran para ellas.

También he utilizado tipos de publicaciones personalizadas para elementos de contenido en varios complementos. Una vez construí una plataforma de reservas para casas de vacaciones, donde las casas, las reservas y los pagos eran cada uno de ellos un tipo de publicación personalizada distinta con atributos únicos. Es algo que también hacen la mayoría de los complementos de comercio electrónico para WordPress.

En otro caso, quería registrar el contenido de todos los correos electrónicos salientes. Entonces, creé un tipo de publicación de "Registro" con el contenido del correo electrónico y todos los metadatos adjuntos que solo eran visibles con las capacidades apropiadas en el backend de WordPress.

Finalmente, el complemento de anuncios avanzados que desarrollé originalmente usaba un CPT para almacenar el contenido del anuncio.

Estos son sólo algunos ejemplos de tipos de publicaciones personalizadas. Sé que debo haber olvidado mencionar muchos otros casos de uso interesantes que conocí a lo largo de los años.

La principal ventaja de los CPT en WordPress es que solo necesitan unas pocas líneas de código o una configuración rápida a través de un complemento, y WordPress se encarga de gran parte de la lógica que necesita para administrarlos y mostrarlos en su sitio. Entonces, veamos cómo crear tipos de publicaciones personalizadas en WordPress.

Crear un tipo de publicación personalizada

Los tipos de publicaciones personalizadas se pueden crear manualmente o mediante un complemento.

Si no tiene experiencia en codificación, los complementos le facilitan mucho la creación de tipos de publicaciones personalizadas.

Una desventaja de usar un complemento es que su tipo de publicación personalizada desaparece tan pronto como elimina el complemento. Si bien es probable que todavía exista en la base de datos, WordPress ya no lo sabe en el frontend ni en el backend.

Como desarrollador que ha hecho esto decenas de veces, sigo prefiriendo el método manual. Sin embargo, admito felizmente que también uso complementos con interfaces de usuario agradables si el tipo de publicación personalizada de WordPress se usa temporalmente o para crear una presentación para un cliente.

Decisiones para tipos de publicaciones personalizadas

A pesar del método que estamos utilizando para crear nuestro tipo de publicación personalizada, primero debemos tomar algunas decisiones. Si bien, en teoría, podrías cambiar cualquiera de ellos más adelante, hacerlo podría afectar en gran medida tu sitio y tu configuración, por lo que es mejor pensar en ellos con anticipación.

¿Público o no?

La decisión principal sobre los tipos de publicaciones personalizadas es quién debe verlas e interactuar con ellas. Con su código personalizado o dentro de un complemento, puede elegir si el CPT es visible en la interfaz, incluidos archivos y páginas individuales accesibles directamente, y si los usuarios lo encuentran mediante la búsqueda. ¿Debería aparecer en el backend de su sitio de WordPress con su elemento de menú?

Si bien un CPT de “Noticias” probablemente sea completamente visible en la interfaz, un registro interno o algo así como pagos podría estar restringido a usuarios con una función específica en su backend de WordPress.

Jerárquico

Es posible que hayas notado que los tipos de publicaciones de páginas y publicaciones de WordPress se comportan de manera ligeramente diferente. Las páginas no tienen un archivo en la interfaz, pero puedes tener páginas principales y secundarias.

Esto último se denomina "jerarquía", que también se define al crear su propio tipo de publicación.

Para tipos de publicaciones jerárquicas, la página de edición ofrece la opción de elegir una página principal y un pedido.

La sección de atributos de página en el editor de WordPress que muestra opciones para la jerarquía de páginas.
Opciones de jerarquía al editar una página.

El orden y la página principal pueden ser importantes al crear menús o listas a partir de páginas automáticamente. La jerarquía también es visible en el slug de URL. Si mi página era "Solución de problemas" con "Documentación" como página principal, la URL final podría ser documentation/troubleshooting .

Consejo: si tiene un CPT con una jerarquía más profunda, le recomiendo usar el complemento Páginas anidadas para organizar rápidamente las publicaciones en el orden correcto.

Editor de bloques o clásico

Al crear un tipo de publicación personalizada, se le pregunta si desea mostrarlo en la "API REST" o no. Ese término técnico hace una cosa crucial: determina si su CPT está utilizando el editor de bloques o la vista del editor clásico.

Como regla general, usar el editor de bloques tiene sentido si su tipo de publicación es similar al contenido normal y desea usar bloques de WordPress. Cualquier tipo de publicación personalizada que no necesite una gran parte de la pantalla para el contenido debe elegir el editor clásico. Por lo tanto, no debería entregarse a través de la API REST.

Slugs y estructura de URL

Otra decisión crítica que debes tomar es nombrar el slug CPT. Es posible que se haga referencia a nuestro tipo de publicación "Noticias" como news en la URL, pero si tiene nombres internos más sofisticados, es posible que desee elegir una forma corta para las URL de la interfaz.

Esta podría ser una decisión importante para tu SEO, así que tómate unos minutos para pensar en ello.

Elementos soportados

Dependiendo del tipo de publicación que esté creando, es posible que también desee decidir de antemano si habilitará la compatibilidad con los siguientes elementos:

  • Títulos (habilitados de forma predeterminada)
  • Aparece el editor (habilitado de forma predeterminada)
  • Comentarios
  • Revisiones
  • Autores
  • Extractos
  • Miniaturas

Hay muchas más opciones para afinar. Sin embargo, lo anterior es lo más importante a considerar antes de usar nuestro tipo de publicación personalizada de WordPress.

Cree un tipo de publicación personalizada con un complemento

Con esto en mente, veamos cómo crear tipos de publicaciones personalizadas usando un complemento y luego hagamos lo mismo manualmente.

Voy a optar por uno de los gratuitos más populares de wordpress.org: UI de tipo de publicación personalizada (CPTUI) de WebDevStudios.

Su interfaz es bastante sencilla, con todas las opciones que uno esperaría de un complemento de tipos de publicaciones personalizadas. Sin embargo, también deja claro que los tipos de publicaciones personalizadas siguen siendo un concepto abstracto que hay que comprender y no una característica con la que un editor habitual de WordPress debería jugar sin un conocimiento más profundo de las opciones.

Primera pantalla con opciones al crear un nuevo tipo de publicación personalizada de WordPress utilizando el complemento UI de tipo de publicación personalizada.
Crear un nuevo CPT con el complemento UI de tipo de publicación personalizada.

Consejo: personalmente soy conservador con las opciones “públicas” de mis CPT y las limito tanto como sea posible en cuanto a quién debería verlos en el frontend y quién debería poder cambiarlos en el backend. Si es necesario, siempre puedes otorgar más acceso más adelante.

Ventajas de la interfaz de usuario de tipo de publicación personalizada

Hay algunas cosas que me gustan de este complemento que otros pueden tener o no.

Normalmente creo mis CPT manualmente, así que sé que escribir las etiquetas lleva mucho tiempo. Hay alrededor de tres docenas si desea ajustarlas todas para mencionar el nombre de su CPT. Como puede ver en la captura de pantalla anterior, el complemento de interfaz de usuario de tipo de publicación personalizada tiene una opción para completar automáticamente estas etiquetas. Aún puedes ajustarlos más adelante en la interfaz.

A continuación, puedo guardar mi tipo de publicación personalizada y editarla más tarde . Incluso puedo cambiar el slug y el complemento migrará todas las publicaciones de ese tipo . Si bien intentaría evitar una situación en la que lo necesitaría, es bueno saber que es posible y que el complemento lo maneja.

La interfaz de usuario de tipo de publicación personalizada mantiene una descripción general de mis tipos de publicación . Si bien parece un poco abrumador, es mucho más fácil de revisar que el código personalizado. También me gusta ver la lista de plantillas en la última columna.

Una descripción general de los tipos de publicaciones personalizadas de WordPress creados por el complemento de interfaz de usuario de tipo de publicación personalizada.
Tipo de publicación personalizada listada.

Estas plantillas son parte de la magia de los tipos de publicaciones personalizadas de WordPress. Si nuestro CPT de Noticias usó slug news , entonces WordPress buscaría automáticamente un archivo llamado archive-news.php en su tema para representar la página de archivo de ese tipo de publicación o single-news.php para una sola página de noticias. Consulte Jerarquía de plantillas para obtener más información.

Generando código con CPTUI

La característica que finalmente me hizo recomendar la interfaz de usuario de tipo de publicación personalizada fue la herramienta para exportar el CPT a código PHP . En CPT UI > Herramientas > Obtener código, encontrará el código PHP para usar en su complemento o functions.php . Felicitaciones a los desarrolladores del complemento por no encerrar a las personas.

Esto hace que CPTUI sea una herramienta ideal para los desarrolladores, ya que podemos configurar rápidamente un tipo de publicación personalizada a través de la interfaz y luego obtener el código PHP para usarlo. Incluso podemos dejar que nuestro cliente lo configure en un sitio de prueba (con todas las etiquetas, etc.) y luego lo migre a donde lo necesitemos.

La única opción que no pude encontrar en el complemento es eliminar el tipo de publicación personalizada con todas sus entidades. En general, si eliminas un complemento o código, las publicaciones personalizadas permanecerán en la base de datos. Sin embargo, existen complementos dedicados para limpiarlo.

Usando código

Si es desarrollador y desea implementar un tipo de publicación personalizada usando código, permítame indicarle las secciones relevantes en la documentación de WordPress.

La función principal para registrar un nuevo tipo de publicación personalizada es la función Register_post_type. Sus parámetros le permiten configurar todas las opciones que mencioné anteriormente.

Todos los tipos de publicaciones se almacenan en la tabla wp_posts de su base de datos. El campo post_type determina a qué entrada pertenece un tipo de publicación.

Puede utilizar metadatos de publicación si su tipo de publicación personalizada es algo más que contenido. Estos datos se almacenan en wp_postmeta .

Por cierto, algunos complementos utilizan tablas personalizadas para administrar los tipos de contenido. No siga ese camino a menos que realmente sea necesario, ya que no podrá utilizar todas las características y funciones integradas de WordPress que vienen con la API de tipos de publicaciones personalizadas.

Ampliar tipos de publicaciones personalizadas

Si su tipo de publicación personalizada es pública, es posible que desee personalizarla aún más. Aquí hay algunas opciones.

Campos personalizados y metacuadros

Los CPT más avanzados, como eventos o artículos de tiendas, necesitan más que contenido. Aquí es donde entran en juego los campos personalizados. Ofrecen campos de entrada para estructurar sus datos de varias maneras. Por ejemplo, un tipo de publicación de "Evento" puede necesitar una fecha de inicio y de finalización o un lugar para que los eventos se puedan mostrar y filtrar.

Si bien puede agregar campos personalizados y metacuadros con código personalizado, un complemento excelente para eso son los muy conocidos Campos personalizados avanzados. Tiene tantas opciones y está tan bien mantenido que ni siquiera yo, como desarrollador, codificaría campos personalizados en mis propios sitios.

Taxonomías personalizadas

Como el tipo de publicación predeterminado "Publicaciones" se puede ordenar con "Categorías" y "Etiquetas", también puede registrar taxonomías para su tipo de publicación personalizada.

El complemento UI de tipo de publicación personalizada que recomendé anteriormente también te ayuda a crearlos.

Gestión de capacidades

Puede utilizar complementos como Miembros para crear una nueva función para los autores en su sitio que solo pueden crear y cambiar su nuevo tipo de publicación personalizada o ajustar las funciones de usuario relacionadas existentes. Esto se recomienda si su flujo de trabajo editorial es diferente para cada tipo de publicación.

Cambio de tipos de publicaciones

Actualmente estoy reorganizando el contenido en una base de conocimiento interna construida con WordPress. Las publicaciones y las páginas tienen objetivos muy diferentes aquí. Algunos de ellos cambiaron de objetivo, por lo que necesitaba una solución para cambiar el tipo de publicación.

Si bien no recomendaría hacer esto a la ligera con un tipo de publicación pública, no hay problema en hacerlo en un sitio no público con tipos de publicación similares. Para lograr esto, instalé Post Type Switcher, un complemento excelente que te permite hacerlo sin problemas. Después de instalarlo, el complemento agregará una sección "Tipo de publicación" en la pantalla "Editar publicación". Puede utilizar esta interfaz para cambiar los tipos de publicaciones según sea necesario.

Conclusión

Sigo considerando que los tipos de publicaciones personalizadas son una característica fundamental que permitió a WordPress florecer en la última década y más allá. Es la base que convirtió nuestro CMS favorito de una simple plataforma de blogs a una herramienta versátil para gestionar eventos o compras online.

Cuando creo complementos que se utilizan en muchos sitios web, todavía encuentro código para crear nuevos tipos de publicaciones. Pero cuando construyo sitios para mí y para mis clientes, uso complementos. Hacen que la creación y el cambio de tipos de publicaciones personalizadas sean mucho más sencillos y tienen una interfaz de usuario mucho mejor que la que jamás podría crear.