Sigue este blog vía RSS, en el Fediverso en @acambronero@www.blogpocket.com, o vía email.

You don’t speak Spanish? Explore a selection of Blogpocket posts in English

Ahora puedes crear Custom Post Types mejor y con menos esfuerzo

CUSTOM-POST-TYPES-GUIA Ahora puedes crear Custom Post Types mejor y con menos esfuerzo

En este post vas a aprender a crear Custom Post Types (tipos de post personalizado) y cómo usar esta funcionalidad de WordPress para añadir todo tipo de contenido a tu sitio web. Con Custom Post Types puedes crear portfolios o bases de datos de productos; o lo que necesites.

Por ejemplo, en Noches de Blogging (*) podríamos añadir un menú secundario con las siguientes opciones:

  • Temporadas.
  • Episodios.
  • Invitados

Esas tres opciones corresponderían, cada una, a un Custom Post Type; es decir un tipo de contenido nuevo en tu WordPress (distinto a las típicas páginas o posts).

(*) Noches de Blogging es un show en directo, emitido actualmente con la plataforma Crowdcast en la que divulgamos las estrategias, método y herramientas de la publicación digital, blogging y medios sociales. A cada episodio suele acudir un invitado especial para charlar acerca de los temas propuestos. Puedes ver todas las temporadas en mi canal de YouTube.

¿Cuál es la ventaja de poder crear Custom Post Types?

Para mí, existen dos ventajas fundamentalmente. Una es precisamente la personalización. Es decir, la posibilidad de implementar tus propios tipos de contenido (piensa, por ejemplo, en que podrías necesitar desarrollar en tu sitio web una pequeña academia de cursos; cada uno de estos con sus correspondientes lecciones). Es difícil personalizar solo con los tipos de contenido predeterminado de WordPress; es decir, con páginas y posts. Otra ventaja importante es la capacidad de realizar relaciones entre las entidades que puedes crear con los Custom Post Types. Sin ir más lejos, una temporada de Noches de Blogging tiene temporadas y cada temporada consta de una serie de episodios.

Todo eso se puede combinar, además, con la asignación de categorías y/o etiquetas, tal como se hace habitualmente con las entradas de un blog.

En el caso de Noches de Blogging, una taxonomía podría ser el año en el que se emitió un determinado episodio. Eso nos permitiría añadir una opción al supuesto menú que fuese «Por año», con objeto de mostrar todos los episodios de un año en concreto.

Cómo crear Custom Post Types

Hemos elaborado un videotutorial, compuesto de 4 vídeos, para explicar paso a paso qué son los Custom Post Types y cómo crearlos para generar, gestionar y publicar tipos de contenido. Esas entidades nuevas (que se pueden relacionar y a las que se pueden aplicar taxonomías) te permitirán, junto a las típicas páginas y posts, desarrollar sitios Web potentes, donde la información esté perfectamente organizada y óptimamente estructurada.

Este videotutorial es una introducción en el que, de manera práctica y paso a paso, se enseña a crear Custom Post Types con un plugin de WordPress. Esta es la manera más sencilla de construir un sitio Web compuesto de entidades, como puede ser el caso de la web de Noches de Blogging; o una academia de cursos, etc. No necesitas saber programación, aunque un poquito de conocimientos de HTML sí te vendrán bien, a la hora de mejorar la presentación de la información en tu web.

Videotutorial para aprender a crear Custom Post Types con plugin

Aquí puedes ver l primer vídeo del videotutorial «Cómo crear Custom Post Types».

Para continuar con el videotutorial y obtener más información acerca de los Custom Post Types, haz clic aquí:

[Tweet «Me ha gustado el videotutorial de cuatro vídeos sobre cómo crear Custom Post Types en WordPress»]

Cómo mostrar las entidades subordinadas a otra

Sabemos que las entidades correspondientes a un Custom Post Type se pueden relacionar con otras pertenecientes a otros Custom Post Types. En el ejemplo tratado en el videotutorial, los episodios están subordinados a las temporadas. Pero no hemos explicado todavía la manera de configurar el plugin Toolset con el fin de visualizar entidades subordinadas.

Como complemento al videotutorial, vamos a ver a continuación cómo mostrar las entidades subordinadas a otra. Por ejemplo, qué hay que hacer para visualizar todos los episodios de una temporada, en la página individual de éstas.

Vamos a verlo paso a paso. Para ello, haz clic aquí.

Cómo crear Custom Post Types mediante código

Ya sabemos, entonces, crear Custom Post Types mediante plugins. Para ello, solo debes ingresar en la página el videotutorial.

A continuación, vamos a explicar cómo hacerlo a través de código.

Interesante, ¿no?

La principal ventaja de este método es que ahorras recursos en la instalación de WordPress. Ya sabes, que cada plugin nuevo que instalas es un paso más hacia la desoptimización del rendimiento (*).

Para ello, debes familiarizarte primero con el archivo functions.php.

Este archivo se encuentra dentro de la carpeta de tu theme activo. Por lo tanto, depende de la plantilla que estés usando. Recuerda que si modificas el archivo functions.php, por ejemplo con el fin de crear Custom Post Types, y cambias en un futuro de plantilla; tendrás que llevarte dichas modificaciones al archivo functions.php del nuevo theme instalado.

Una vez que tengas el código desarrollado, en lugar de añadirlo a functions.php, puedes crear un plugin. Te vamos a enseñar también aquí cómo crear ese plugin para que, si cambias de theme algún día, no tengas que estar pendiente de realizar la modificación otra vez.

(*) Aprende a crear un sitio web 100 % optimizado en rendimiento, móviles, velocidad y seguridad leyendo nuestro post estrella: WPO en WordPress, cómo lograr un blog rápido, seguro y optimizado para móviles.

Tutorial para crear Custom Post Types con código

Hemos hecho el siguiente tutorial con el fin de que puedas crear Custom Post Types, con un ejemplo práctico.

Haz clic aquí y entra al tutorial.

GenerateWP

GenerateWP es una herramienta online que permite, entre otras cosas, generar automáticamente las instrucciones a incluir en el archivo functions.php, a partir de la elección de una serie de parámetros.

Cómo usar Gutenberg con Custom Post Types

En la versión 5.3.2 todavía no se puede utilizar Gutenberg con los Custom Post Types. Pero hay un pequeño truco para ello, explicado aquí: How to Use Gutenberg with WordPress Custom Post Types.

En resumen, lo que hay que hacer es añadir los siguientes parámetros en la lista de la función register_post_type:

'show_in_rest' => true,
'supports' => array('editor')

Un ejemplo sería el que se muestra en el snippet siguiente:

/*Register WordPress  Gutenberg CPT */
function cw_post_type() {

    register_post_type( 'portfolio',
        // WordPress CPT Options Start
        array(
            'labels' => array(
                'name' => __( 'Portfolio' ),
                'singular_name' => __( 'Portfolio' )
            ),
            'has_archive' => true,
            'public' => true,
            'rewrite' => array('slug' => 'portfolio'),
            'show_in_rest' => true,
            'supports' => array('editor')
        )
    );
}
 
add_action( 'init', 'cw_post_type' );

Conclusiones

En este post hallarás fácilmente las claves necesarias para crear Custom Post Types.

Te hemos enseñado a hacerlo mediante plugins e, incluso, con código.

Puedes acceder a los tutoriales respectivos simplemente con un clic.

Y ahora solo queda que me cuentes tu experiencia con la creación de Custom Post Types.

Responder en Mastodon (requiere usuario en esa plataforma)

Puedes usar tu cuenta de Mastodon para responder a este post de

Copia y pega esta URL (https://www.blogpocket.com/?p=58184) en el campo de búsqueda de la interfaz web de tu servidor Mastodon.

Icono de Mastodon

10 respuestas a «Ahora puedes crear Custom Post Types mejor y con menos esfuerzo»

  1. Juan

    Muy interesante

    1. Muchas gracias por el feedback. Saludos 🙂

  2. Hola Antonio:
    Me parece súper interesante tu post sobre los Custom Post Types. Comentas que puede servir para crear una pequeña academia de cursos en la web. Eso me interesa. Me pregunto como harías tu para que pudieran acceder sólo los alumnos inscritos o matriculados en el curso. También me gustaría saber si ese plugin funciona bien con el tema Avada.

    1. Desconozco el theme Avada pero el plugin Toolset es compatible con todos los themes. Es cuestión de probarlo antes con Avada, pero lo más probable es que funcione. Para la inscripción puedes usar un plugin de membership como MemberPress o cualquiera similar. Mira este post: https://www.wpbeginner.com/plugins/5-best-wordpress-membership-plugins-compared/ Un saludo 🙂

  3. Raquel

    ¡Hola!
    He creado un Custom Post Type con código pero tengo un problema final que no se si me podrías añadir. Tengo diferenciado el Blog y con sus respectivas entradas y categorías y por otro lado he creado Proyectos y como taxonomía Trabajos y dentro de trabajos diferentes categorías como logotipos, web… El problema me viene cuando quiero que al clicar en las categorías de Trabajos como por ejemplo en Logotipos me aparecen todos los trabajos y no únicamente los que corresponden a esa categoría. No se si podrías resolver mi problema. Gracias de antemano

    1. Hola Raquel, tendrías que repasar la configuración. En principio al clicar en una categoría tienen que salir solo los posts de esa categoría. Un saludo 🙂

  4. Un artículo realmente bueno, se especifican muchas funciones y las explicaciones son claras. Gracias, un saludo.

    1. Muchas gracias, Daniel, por el feedback. Me alegro de que el artículo te haya gustado y te sea útil. Un saludo 🙂

  5. Javier Fuentes

    Hola,

    Si creo un cpt llamado cursos y cada curso tiene sus lecciones, como puedo hacer para que en la página mi web.com/cursos se muestre un grid con los cursos sólo y que al pinchar en el vayas a las clases de cada curso. Lo he creado con generatewp.

    Salu2 y gracias de antebrazo

    1. Hola Javier. Mostrar el cpt cursos es automático en lista con la url web.com/cursos. Lo único que hay que hacer para sacarlo en grid en aplicar CSS. Un saludo 🙂

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Antonio Cambronero.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento: No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a GreenGeeks que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ir al contenido