Custom post type: todo lo que necesitas saber

Autor: | 2019-02-07T16:46:36+00:00 Fecha: 07/02/2019|Categorías: WordPress|Comentarios: Ningún comentario

WordPress maneja varios tipos de contenido como páginas, medios y entradas, pero además te permite crear tus propias entradas personalizadas (tipos de post) o custom post type.

Este CMS es famoso por su fácil modificación y extensión, pues puedes pasar de un simple blog a un portfolio fácilmente.

Hoy te mostraré qué son los custom post types y cómo crear uno de forma muy simple con código.

O si prefieres algo más rápido, también te explicaré cómo hacer entradas personalizadas con el plugin Custom Post Type UI.

 

¿Qué es custom post type o entrada personalizada en WordPress?

Una entrada personalizada es un tipo de post que puedes personalizar para tus necesidades.

Estos pueden tener diferentes nombres, taxonomías y campos personalizados independientes.

💡 En WordPress, una taxonomía es un mecanismo de agrupación de entradas. Los ejemplos más populares son las categorías y etiquetas.

WordPress guarda todos sus tipos de post en la misma tabla de su base de datos, “wp_posts”, pudiéndolos diferenciar con característica de “tipo de post”.

tablas-wordpress

Esto pasa porque todos los posts se guardan de manera similar. Generalmente tienen un título, fecha, estado, imagen destacada, descripción o contenido y más.

❌ No hay que confundir Custom Post Types con Custom Fields. Estos últimos son metadatos que puedes agregar al post. Por ejemplo: un plugin de SEO que añade campos personalizados a los post.

 

Ejemplos de entradas personalizadas

La instalación predeterminada de WordPress incluye varios tipos de entradas diferentes, entre las que destacan entradas y páginas.

Puedes observar que la edición en ambos es exactamente igual, a excepción de que los posts tienen la opción de seleccionar categorías.

Otro ejemplo muy popular serían los productos. Cuando conviertes tu WordPress en una tienda virtual con plugins como WooCommerce, este crea un custom post type de “productos” con sus propias opciones y categorías.

 

Cómo crear los custom post type

La primera parte será creando código, pero no te preocupes: no tiene nada de complicado.

El tutorial que haré será sobre cómo crear una entrada personalizada de Glosario de términos, algo que me parece de utilidad para cualquier blog de temática específica.

El código lo puedes colocar en el archivo functions.php de tu tema (idóneamente de un tema hijo, para que no pierdas el código con las actualizaciones).

También puedes crear un plugin, ya que así las entradas personalizadas no dependerán de tu tema y podrás cambiarlo sin problemas.

Si decides crearlo, te recomiendo este tutorial para creación de Plugins de WordPress.

 

Conocimientos recomendados para hacer este tutorial

Esta parte está pensada para un usuario básico-medio. Te recomiendo:

Si todo esto te suena a chino, no te preocupes: con el plugin Custom Post Type UI no necesitarás tocar código.

Pero ya que llegaste hasta aquí, ¡comencemos!

 

Registrar entrada personalizada con register_post_type()

Esta es la función que permite pasarle los argumentos a WordPress con los datos de la entrada personalizada:

Esta función acepta dos parámetros:

  • $post_type:

Es el identificador (y slug) de la entrada personalizada, debe ser de 20 caracteres o menos y contener caracteres alfanuméricos en minúsculas, guiones o guiones bajos.

  • $args:

Un arreglo con los argumentos (también acepta una cadena de texto, pero no es recomendada). Tiene muchos parámetros y no todos son obligatorios. En este tutorial usaremos:

  • ‘label’: nombre de la entrada personalizada para mostrar en el menú.
  • ‘labels’: arreglo de etiquetas para las entradas personalizadas.
  • ‘description’: pequeño resumen de la función del custom post type.
  • ‘public’ (bool): permitir que el post sea accesible desde el front-end.
  • ‘menu_position’: posición en el menú lateral del escritorio de WordPress.
  • ‘rewrite’: configurar el enlace permanente de las entradas personalizadas.
  • ‘supports’: qué características principales soportará.
  • ‘has_archive’: permitir crear archivos del mismo.

Puedes ver los detalles completos de los argumentos en el codex de WordPress.

 

Cómo crear el custom post type

Continuando el ejemplo del glosario de términos, abre tu editor de código y crea una función para envolver el registro, que luego registrarás en el WordPress hook “init”.

A continuación, dentro de la función registras el custom post type con los argumentos:

Ya con este simple código, tienes listas y funcionales tus entradas personalizadas.

custom-post-type-wordpress

Para facilitarle la vida al usuario, puedes modificar las etiquetas de nombres. Para ello, agregas el argumento ‘labels’ a $args, declarando una variable $labels, que será un simple arreglo:

Esto te ayudará a describir mejor el panel de administración del custom post type. Quedará algo así:

etiquetas-de-nombre-entradas-personalizadas

Aquí te dejo el código final que puedes pegar en functions.php:

 

Cómo mostrar tu custom post type WordPress

Ya WordPress tiene tu custom post type registrado, pero ¿cómo hacer que se vea en el sitio?

En principio, no tienes que hacer nada: WordPress tomará automáticamente single.php para las entradas y archive.php para el archivo.

Sin embargo, también puedes mostrar cosas diferentes y personalizar la forma en la que se muestra, editando un poco single.php.

Usando la función get_post_type() puedes crear un simple código para mostrar algo diferente con un condicional.

Como el ejemplo es de un glosario de términos de Raiola, colocaré un banner promocionando el hosting WordPress.

Copia single.php  a tu tema hijo, ábrelo y busca la función the_content(). A continuación, pega este código reemplazando “raiola_glosario” con el ID de tu custom post type y, por supuesto, lo que deseas mostrar.

Quedaría así:

personalizar-custom-post-type

💡 WordPress añadirá una clase CSS a la etiqueta body, con el ID del custom post type (en este caso, “single-raiola_glosario”) ideal para personalizar la entrada con CSS.

Modificando el tema de WordPress para mostrar las entradas personalizadas

Si quieres ir más allá en la personalización, puedes hacerlo siguiendo la jerarquía de plantillas de WordPress. En tu tema hijo, puedes clonar single.php y renombrarlo a single-ENTRADAPERSONALIZADA.php.

Usando el ejemplo de este tutorial, sería single-raiola_glosario.php.

En este documento php, puedes realizar todas las modificaciones que desees y solo se aplicarán a tus custom post types.

Lo mismo para los archivos: copia archive.php y renómbralo a archive-ENTRADAPERSONALIZADA.php y ya eres libre de hacer todas las ediciones que quieras.

Wp query custom post type

Para crear un loop de entrada personalizada, puedes hacerlo con WP_QUERY. Añade el parámetro ‘post_type’ a los argumentos de esta forma:

De este modo, ya tienes un custom post type en WordPress. Ahora veamos cómo sería hacerlo con plugin.

 

Plugin Custom Post Type UI: Crea y administra tus taxonomías y custom post types en WordPress

Si quieres unas entradas personalizadas en tu blog sin preocuparte por código, esta opción es ideal. Puedes crear, editar y borrar custom post types con pocos clics.

Este plugin permite realizar toda la labor de personalización de posts con una interfaz gráfica muy intuitiva.

Al ser un custom post type, se aplican los mismos parámetros que usamos en el código anterior.

Cómo usarlo:

El primer paso es instalarlo, ve a “Plugins > Añadir nuevo” (1), en el buscador (2), escribe “Custom Post Type UI” y haz clic en “instalar” (3). Una vez instalado el plugin, lo activas.

instalar-custom-post-type-ui

Una vez activado, al final del menú lateral de WordPress habrá un nuevo elemento llamado “CPT UI”. Le haces clic e, inmediatamente,te llevará a la página de configuración del plugin para agregar un nuevo custom post type.

Allí mismo, en la configuración básica, creas el slug (ID) del custom post type junto con la etiqueta plural y la etiqueta singular. Ahora haz clic en “Añadir tipo de contenido” y ya tienes tu custom post type.

custom-post-type-plugin

Te creará las entradas personalizadas de esta forma:

crear-custom-post-type

Puedes cambiar los nombres yendo de nuevo al menú CTP UI y luego a la pestaña “Editar tipo de contenidos” (1). Comprueba que esté seleccionado el Custom Post Type que creaste anteriormente (2).

En los campos de “etiquetas adicionales” (3) puedes especificar todas las etiquetas de nombres que quieras. Esto le facilitará la vida al usuario final.

editar-entrada-personalizada

Para finalizar, en los campos de “configuración” ve a “reescribir” y cambia el slug del custom post type por otro mejor. Yo he dejado simplemente “glosario”.

editar-slug-entrada-personalizada

Esto cambiará la URL de los post individuales. En este ejemplo, cambiará de raiolanetworks.es/ctpglosarioraiola/dns a raiolanetworks.es/glosario/dns, quedando mucho más agradable al usuario (y buscadores).

Te recomiendo dejar el resto de la configuración con la opción predeterminada, ya que raramente se necesitan configuraciones adicionales en entradas personalizadas sencillas.

Ya tienes tu tipo de entrada personalizada funcionando.

tipo-de-entrada-personalizada

 

Otros plugins de Custom Post Types

Además de Custom Post Type UI, existen otros plugins que te pueden ayudar con el trabajo de creación de custom post types. Esta es una lista de los más destacados.

Toolset Types Plugin

plugin-toolset-types-custom-post-types-custom-fields-and-taxonomies

Permite crear custom post types, custom fields y taxonomías de una forma muy fácil, además de poder crear relaciones entre los mismos.

Tiene un editor visual amigable, que te facilita la creación de los campos personalizados.

Es ideal para sitios multilenguaje porque es compatible con WPML.

Pods – Custom Content Types and Fields

plugin-pods-custom-content-types-and-fields

Destaca porque además de su posibilidad de crear custom post types, taxonomías y campos personalizados, da la posibilidad de crear páginas de configuración en el escritorio de WordPress.

Otra característica muy útil es la posibilidad de mostrar el contenido con shortcodes.

Custom Post Type Maker

plugin-custom-post-type-maker

Es el más sencillo de los plugins, permite configurar todos los parámetros necesarios para crear un custom post type y taxonomías.

Buena alternativa para cuando no necesitas muchas cosas y quieres algo que vaya al grano y sin tantos adornos.

 

Conclusión y recomendaciones

La posibilidad de crear custom post types en WordPress es uno de los ingredientes que lo ha hecho tan popular. Desde tiendas virtuales hasta buscador de inmuebles, las posibilidades son infinitas.

Tanto si utilizas código como un plugin, recuerda tener en cuenta estos aspectos:

  • No te olvides del SEO de la entrada personalizada. Plugins como Yoast automáticamente reconocerán la entrada personalizada y le añadirán sus campos de SEO. Lo puedes deshabilitar si lo deseas.
  • No crees custom post types excesivamente o sin utilidad, ya que de esta forma solo haces la base de datos más pesada.
  • De ser posible, realiza las pruebas en un entorno de desarrollo.

Espero que te haya agradado el post de hoy y lo pongas en práctica. Saca partido a tu WordPress y aprovéchalo al máximo.

Si te llega a suceder algún problema, no dudes en dejar un comentario. ¡Seguro que le encontramos una solución!

[Total: 1 Promedio: 5]
Jose Miguel Urdaneta
Creo contenido para WordPress y además desarrollo temas y plugins para este CMS. Cada vez que mi blog carga más rápido, suelto una risa malvada. Me gusta viajar.

Utilizamos cookies propias y de terceros para obtener información estadística, mostrar publicidad personalizada a través del análisis de tu navegación, así como para interactuar en redes sociales. Si continúas navegando, consideramos que aceptas nuestra Política de cookies. ACEPTAR

Aviso de cookies