Imagen ilustrativa para la entrada '¿Qué son los Custom Post Type de WordPress?'Imagen ilustrativa para la entrada '¿Qué son los Custom Post Type de WordPress?'

¿Qué son los Custom Post Type de WordPress?

Cuando WordPress nació, tan solo existían los posts. Esto se debe a que WordPress en un principio estaba pensado únicamente para la creación de blogs.

Pero con el tiempo, sus desarrolladores se percataron de que no podían dar únicamente esa funcionalidad y que debían de añadir más opciones si querían ir más allá y responder al creciente uso que estaban teniendo. Entonces, crearon las páginas, y con ellas, los tipos de post personalizados o custom post type.

Aunque incluyeron este nuevo tipo de contenido, las páginas fueron consideradas como un «tipo de post» y no como un «tipo de contenido«, como habría sido lógico nombrarlo.

Lo que nos lleva al poder decir que las páginas son en realidad como los posts, salvo por algunas diferencias. Como por ejemplo, que no tienen categorías ni etiquetas. En el caso de que queráis saber más, podéis leer el siguiente artículo.

Aunque esto supuso una revolución para WordPress, la verdadera revolución no llegó hasta la versión 3.5, la cual trajo consigo los Custom Post Types, de los cuales, precisamente hoy venimos a hablaros.

CONTENIDO

Que son los Custom Post Types en WordPress

Los Custom Post Types, tal como indica su nombre, son un tipo de post. Su caracteristica principal es la de poder incluir cualquier tipo de particularidad que nosotros queramos. Y cuando decimos cualquier particularidad, no lo decimos en broma, pues pueden incluir casi cualquier cosa que se nos ocurra.

Podremos hacerlas de la siguiente manera:

  • Jerárquicas, como lo son las páginas, o no jerárquicas, como las entradas.
  • Con o sin imagen destacada.
  • Podemos incluirlas, o no, en las búsquedas de WordPress.
  • Temporales, como las entradas, o indefinidas, como las páginas.
  • Podrán incluir sus propias taxonomías.
  • Pueden ser públicos o privados.
  • Exportables o no exportables.
  • Podrán contener títulos, contenido, extractos, comentarios etc.

En resumen, podrán contener absolutamente todo lo que queramos, casi sin un límite, incluidos campos personalizados como fechas, textos adicionales etc.

Ejemplos de Custom Post Types:

A continuación, veremos algunos ejemplos de Custom Post Types con el objetivo de que todos podamos entender que son correctamente.

En realidad, estamos acostumbrados a ver Custom Post Types a cada rato, de hecho, en el momento en el que instalamos unos cuantos plugins, seguro que veréis como se van añadiendo nuevas opciones en el panel de administración de nuestro WordPress, pues bien, eso son los Custom Post Types.

Ejemplo de Custom Post Types
Ejemplo de Custom Post Types

¿Sabes ya identificar un Custom Post Types? Si no es así, no os preocupéis. No es tan sencillo como parece. La forma más fácil de reconocer un Custom Post Type es observando la url a la que nos redirige la opción al poner el ratón encima.

La estructura normal para un Custom Post Type son aquellas similares a la siguiente:

https://www.tudominio.com/wp-admin/edit.php?post_type=Custom_Post_Type

Teniendo esto en cuenta, podemos observar que el plugin Elementor, el cual habíamos marcado anteriormente como un Custom Post Type en la imagen, no sigue la misma estructura en el enlace, si no, que en este caso, aparece como una página. Por ello, no tengáis en cuenta únicamente que «se añada un icono nuevo en la barra de navegación», y recordad, las páginas también son un Custom Post Type. Si no nos crees, dirígete a tu listado de páginas y observa la URL, te darás cuenta como es similar a la anterior.

https://www.tudominio.com/wp-admin/edit.php?post_type=page

Cuando usar los Custom Post Type en WordPress

Posiblemente, os preguntéis cuando debéis utilizar un Custom Post Type, y la verdad, es que la respuesta depende un poco de lo que necesitéis.

Así que, si de verdad quereis saber cuando utilizar un Custom Post Type y cuando no, preguntáos lo siguiente: lo que queréis hacer, ¿comparte el mismo tipo de información o sistema de organización que las página o las entradas? Si es así, no tendrá sentido que utilicemos un Custom Post Type, pues podríamos usar una de las opciones anteriores.

Por ejemplo, supongamos que tenemos una web de series. Podríamos añadir cada serie como una entrada, pues comparten información como el título, la descripción y la imagen destacada, lo mínimo necesario para poder mostrar nuestras series sin que nos falte información. Pero claro, nosotros queremos añadir el número de temporadas que tiene la serie en cuestión y una puntuación para ayudar al usuario a elegir que serie ver.

Estos dos campos que necesitamos (número de temporadas y puntuación), por defecto, no podremos incluirlos ni mediante una página ni por medio de una entrada, además, solo por tener la necesidad de añadir estos dos campos, ya podemos considerarlo como un contenido totalmente distinto a un post o página. Así que, tendremos que hacer uso si o si de un Custom Post Type.

Para acabar con este apartado, y a modo de resumen: recomendamos usar los Custom Post Type en lugar de las categorías cuando la entidad del contenido sea lo suficientemente significativa como para independizarse

Teniendo esto en cuenta, lo siguiente que veremos será como crear un Custom Post Type.

Cómo crear un Custom Post Type en WordPress

Hay varias formas de crear un Custom Post Type, una de ellas implica el uso de un plugin y la otra escribir código por nosotros mismos. Pero, no te preocupes, vamos a ver ambas opciones con detalle.

Crear un Custom Post Type mediante un plugin:

En el mundo de WordPress hay mínimo un plugin para casi todo lo que te puedas imaginar, y esta no iba a ser una excepción, ¿verdad?. En esta ocasión, el plugin que usaremos será Custom Post Type UI el cual, además de ser gratuito, es muy potente y fácil de utilizar.

Una vez instalado y activado el plugin, si accedeis a su pantalla principal, podréis ver algo similar a lo siguiente:

Custom Post Type - Plugin

El funcionamiento de este plugin es muy sencillo, nos otorga una interfaz gráfica mediante la cual podremos crear nuestros Custom Post Type tan solo rellenando los datos que necesitemos y haciendo click sobre Añadir Post Type.

Pero, aunque este método sea muy flexible, dado que nos deja elegir entre todas las opciones a la hora de crear un Custom Post Type de forma gráfica y rápida, no es la mejor opción y esto se debe a lo siguiente:

  • Deberemos de tener el plugin instalado y activo si o si, de lo contrario, no podremos usarlo.
  • Al necesitar un plugin obligatoriamente, el rendimiento de nuestro sitio se verá afectado negativamente, tened en cuenta que todo suma y que podríamos prescindir de un plugin si escribimos nosotros mismos el código.
  • Si la web no es para nosotros, no será muy buena idea dejar un plugin al que pueda acceder el cliente, tarde o temprano puede acabar tocándolo y desconfigurando algo.

Crear un Custom Post Type mediante código:

Sin duda alguna, nuestra opción favorita y la que os recomendamos que utilicéis.

Aunque no lo parezca, hacer un Custom Post Type es más sencillo de lo que parece. Para ello, deberemos de ir al fichero functions.php de nuestro tema activo y escribir lo siguiente:

function my_custom_post_type() {
    $args = array(
        'public' = true,
        'label' ='Series'
    );

    register_post_type( 'my_custom_post_type', $args );
}

Con tan solo esas líneas de código ya tendremos nuestro Custom Post Type para nuestro sitio de series listo (siguiendo el ejemplo que os comentábamos anteriormente).

Aunque, si queréis un código mucho más elaborado y que cuente con muchas más opciones, os dejamos el siguiente, el cual es un poco más avanzado:

function my_custom_post_type()
{

  # Definimos el texto de las etiquetas de texto:
  $labels = array(
    'name' => __('Series', 'nombre_de_tu_theme'),
    'singular_name' => __('Serie', 'nombre_de_tu_theme'),
    'menu_name' => __('Series', 'nombre_de_tu_theme'),
    'name_admin_bar' => __('Series', 'nombre_de_tu_theme'),
    'archives' => __('Archivos de las series', 'nombre_de_tu_theme'),
    'all_items' => __('Todas las series', 'nombre_de_tu_theme'),
    'add_new_item' => __('Agregar nueva serie', 'nombre_de_tu_theme'),
    'add_new' => __('Agregar serie', 'nombre_de_tu_theme'),
    'new_item' => __('Nueva serie', 'nombre_de_tu_theme'),
    'edit_item' => __('Editar serie', 'nombre_de_tu_theme'),
    'update_item' => __('Actualizar serie', 'nombre_de_tu_theme'),
    'view_item' => __('Ver serie', 'nombre_de_tu_theme'),
    'view_items' => __('Ver series', 'nombre_de_tu_theme'),
    'search_items' => __('Buscar serie', 'nombre_de_tu_theme'),
    'not_found' => __('Serie no encontrada', 'nombre_de_tu_theme'),
    'featured_image' => __('Imagen Destacada', 'nombre_de_tu_theme'),
    'set_featured_image' => __('Colocar imagen destacada', 'nombre_de_tu_theme'),
    'remove_featured_image' => __('Quitar imagen destacada', 'nombre_de_tu_theme'),
    'use_featured_image' => __('Usar como imagen destacada', 'nombre_de_tu_theme'),
    'insert_into_item' => __('Insertar en la serie', 'nombre_de_tu_theme'),
    'uploaded_to_this_item' => __('Uploaded to this item', 'nombre_de_tu_theme'),
    'items_list' => __('Lista de series', 'nombre_de_tu_theme')
  );

  $args = array(
    'label' => __('Series', 'nombre_de_tu_theme'),
    'description' => __('Descripción', 'nombre_de_tu_theme'),
    'labels' => $labels,
    'supports' => array('title', 'thumbnail', 'editor'),
    'taxonomies' => array('Series', 'Películas'),
    'public' => true,
    'menu_position' => 5,
    'has_archive' => true,
    'rewrite' => array('slug' => 'series'),
  );

  register_post_type('series', $args);
}

add_action('init', 'my_custom_post_type');

Recuerda crear un tema hijo para tu tema activo actual, de lo contrario, cuando actualices perderás lo que hayas escrito y tendrás que volver a escribir el código.

Los Custom Post Type no dependen de los temas

Antes de finalizar el post, nos gustaría avisaros que los Custom Post Type no dependen de los temas, es más, los temas no deberían incluir nunca un Custom Post Type, dado que, si por algún motivo decidimos cambiar de tema, perderemos el Custom Post Type para siempre.

Recordad que, lo que viene en un tema, se va con el propio tema y hacednos caso, tarde o temprano cambiaréis de tema y no es buena idea depender de uno.

La posibilidad de añadir Custom Post Type en WordPress es una de las características que lo han hecho tan popular, permitiendo convertir nuestro blog en una tienda virtual, un comparador online y un sin fin mas de opciones.

Por último, tanto si utilizas un plugin o código recuerda tener en mente estos aspectos:

  • No te olvides del SEO de tu Custom Post Type.
  • No crees Custom Post Types en en exceso o sin utilidad.
  • Realiza pruebas en un entorno de desarrollo a ser posible.

Esperamos que hayáis sacado algo productivo de este artículo y que hayáis aprendido mucho.

No olvidéis comentarnos vuestras dudas, un saludo y nos vemos en el siguiente artículo.

¿Qué son los Custom Fields en WordPress? Ahorra tiempo y simplifica la gestión de medios con este plugin de WordPress