Portada » Tipos de contenido personalizados WordPress: crear CPT
WordPress · PHP · Desarrollo web · Arquitectura de contenidos

Tipos de contenido personalizados en WordPress: qué son y cómo crearlos

Los Custom Post Types (CPT) permiten crear estructuras de contenido propias en WordPress, más allá de las entradas y páginas tradicionales. Aprende a registrar tipos de contenido personalizados con PHP, organizar información mediante taxonomías, añadir campos personalizados, integrarlos con Gutenberg y publicarlos mediante la REST API.

¿Qué es un Custom Post Type en WordPress? Un Custom Post Type o tipo de contenido personalizado es una estructura que permite crear y administrar una categoría propia de contenidos dentro de WordPress. Por ejemplo, puedes crear tipos de contenido llamados productos, proyectos, propiedades, negocios, cursos o profesionales. Se registran principalmente mediante la función register_post_type() de PHP y pueden disponer de sus propias páginas individuales, archivos, taxonomías y endpoints REST API.

¿Qué son los Custom Post Types de WordPress?

Los Custom Post Types (CPT) son tipos de contenido personalizados que permiten ampliar la estructura de información de WordPress. En lugar de utilizar únicamente las entradas y páginas predeterminadas, puedes registrar nuevos tipos que representen elementos específicos de un proyecto.

Por ejemplo, un sitio web corporativo puede necesitar una sección de proyectos. Un directorio comercial puede necesitar negocios y profesionales. Una plataforma inmobiliaria puede necesitar propiedades con información específica como precio, superficie y ubicación.

En estos casos, almacenar todo como páginas convencionales puede dificultar la organización, las consultas y el mantenimiento. Un CPT permite agrupar esos registros bajo una estructura propia y administrarlos desde el panel de WordPress.

La función principal para crear un tipo de contenido personalizado es register_post_type(). Se utiliza normalmente durante el hook init, mediante código PHP incorporado en un plugin o en un tema.

Ejemplos de tipos de contenido personalizados

  • Productos: catálogo de artículos o servicios.
  • Propiedades: casas, departamentos, terrenos y oficinas.
  • Negocios: fichas de empresas y comercios.
  • Profesionales: perfiles de especialistas y prestadores de servicios.
  • Proyectos: portafolios, trabajos realizados y casos de éxito.
  • Cursos: programas de formación y materiales educativos.
  • Eventos: actividades, encuentros y acontecimientos.
  • Vehículos: inventarios con características específicas.

Cada tipo puede tener su propia configuración de administración, campos, categorías, plantillas y comportamiento de publicación.

Diferencia entre entradas, páginas y Custom Post Types

WordPress ya incorpora diferentes tipos de contenido. Los más conocidos son las entradas y las páginas. Los CPT permiten crear estructuras adicionales cuando las opciones predeterminadas no representan correctamente la información de un sitio.

Tipo de contenido Uso habitual Características
Entradas Noticias, artículos y publicaciones periódicas. Orden cronológico, categorías y etiquetas.
Páginas Inicio, servicios, contacto y páginas institucionales. Estructura jerárquica mediante páginas superiores e inferiores.
Custom Post Types Productos, negocios, proyectos, cursos y propiedades. Estructura propia, taxonomías, campos y consultas específicas.

¿Por qué no utilizar páginas para todo?

Una página es adecuada para contenido institucional o información que no necesita un sistema de clasificación especializado. Sin embargo, cuando tienes cientos de negocios, propiedades o proyectos, necesitas una estructura que permita administrar y consultar esos registros de forma ordenada.

Por ejemplo, una página puede explicar los servicios de una empresa. En cambio, un CPT llamado proyecto puede almacenar cada trabajo realizado con título, descripción, imagen destacada, categoría, cliente y fecha.

¿Un CPT es lo mismo que una categoría?

No. Un Custom Post Type define una clase de contenido, mientras que una categoría o taxonomía sirve para clasificar elementos pertenecientes a uno o varios tipos de contenido.

Por ejemplo, puedes tener un CPT llamado proyecto y una taxonomía llamada tipo_proyecto con términos como desarrollo web, automatización, software y ecommerce.

¿Cuándo conviene crear un tipo de contenido personalizado?

Crear un CPT tiene sentido cuando necesitas administrar un conjunto de registros que comparten características y requieren una organización diferenciada de las entradas y páginas tradicionales.

Señales de que necesitas un CPT

  • Tienes numerosos registros con una estructura de información repetida.
  • Necesitas campos específicos para cada tipo de registro.
  • Quieres clasificar elementos mediante taxonomías propias.
  • Necesitas consultas y listados independientes.
  • Quieres exponer esos contenidos mediante la REST API.
  • Necesitas plantillas específicas para cada tipo de información.
  • Quieres organizar mejor el panel de administración.

Ejemplo: un directorio de negocios

Imagina que desarrollas una plataforma de negocios para una comuna de Chile. Cada comercio necesita una ficha con nombre, descripción, dirección, teléfono, sitio web, fotografías y categoría.

Puedes crear un CPT llamado negocio y una taxonomía llamada rubro. Así podrás administrar cada comercio de forma independiente y generar listados por actividad económica.

Recomendación de arquitectura: no crees un CPT para cada sección visual de una página. Utiliza tipos de contenido para representar entidades o conjuntos de datos que realmente necesitan administración independiente.

¿Cómo se organiza un Custom Post Type?

Un CPT puede combinar distintos componentes de WordPress para construir una estructura completa de contenido.

Componente Función Ejemplo
Post Type Define el tipo de registro. proyecto
Taxonomía Clasifica los registros. tipo_proyecto
Término Representa una categoría concreta. Desarrollo web
Campo personalizado Almacena información adicional. cliente
Plantilla Define cómo se muestra el contenido. single-proyecto.php
Endpoint REST Permite consultar el contenido mediante la API. /wp-json/wp/v2/proyectos

La combinación de estos componentes permite desarrollar desde un portafolio simple hasta un directorio comercial o una plataforma de gestión de contenidos más compleja.

¿Cómo crear un Custom Post Type en WordPress con PHP?

La función register_post_type() registra un nuevo tipo de contenido dentro de WordPress. Recibe como primer argumento una clave interna y como segundo argumento un arreglo de opciones.

Para el ejemplo crearemos un tipo de contenido llamado Proyectos. Tendrá su propia sección en el panel de administración, soporte para Gutenberg, imágenes destacadas, extractos, revisiones y una URL pública.

Ejemplo de configuración básica

PHP · Registrar un Custom Post Type
function ciborg_registrar_proyectos() {

    register_post_type(
        'proyecto',
        array(
            'labels' => array(
                'name' => 'Proyectos',
                'singular_name' => 'Proyecto'
            ),

            'public' => true,

            'show_in_rest' => true,

            'has_archive' => true,

            'rewrite' => array(
                'slug' => 'proyectos'
            ),

            'supports' => array(
                'title',
                'editor',
                'thumbnail',
                'excerpt'
            )
        )
    );

}

add_action(
    'init',
    'ciborg_registrar_proyectos'
);

Con este código, WordPress registra el tipo de contenido proyecto. El administrador verá una nueva sección llamada Proyectos y podrá crear registros independientes.

¿Qué significa cada parámetro?

  • labels: define los nombres que aparecerán en el escritorio.
  • public: establece la visibilidad general del tipo de contenido.
  • show_in_rest: permite exponerlo en la REST API y utilizar el editor de bloques.
  • has_archive: habilita una página de archivo para listar los registros.
  • rewrite: establece la estructura de las URLs públicas.
  • supports: determina qué funcionalidades tendrá cada registro.
Detalle técnico: la clave interna del tipo de contenido debe ser breve, en minúsculas y no superar los 20 caracteres. Es recomendable utilizar un nombre estable que no dependa de cómo se muestra el nombre en el menú administrativo.

¿Dónde colocar el código de un Custom Post Type?

Puedes registrar un CPT desde un plugin o desde el archivo functions.php de un tema. Sin embargo, para tipos de contenido que representan información propia de un proyecto, normalmente es preferible utilizar un plugin.

La razón es importante: si registras el tipo de contenido desde el tema y posteriormente cambias de diseño, la definición del CPT puede dejar de cargarse. Los registros permanecerán almacenados, pero WordPress ya no reconocerá correctamente su estructura hasta que vuelvas a registrar el tipo.

Ubicación Cuándo utilizarla
Plugin propio Para proyectos, negocios, productos, propiedades y estructuras de datos que deben mantenerse independientemente del diseño.
functions.php Para funcionalidades estrechamente vinculadas al funcionamiento o presentación de un tema.
Plugin de terceros Cuando necesitas administrar CPT sin desarrollar todo el código manualmente.

Crear un plugin propio para registrar proyectos

Para mantener el ejemplo organizado, puedes crear un plugin sencillo con la siguiente estructura:

ciborg-proyectos/
│
└── ciborg-proyectos.php

Dentro del archivo ciborg-proyectos.php, coloca el encabezado del plugin y las funciones de registro.

PHP · Plugin completo de ejemplo
<?php
/**
 * Plugin Name: Ciborg Proyectos
 * Description: Registra el tipo de contenido Proyectos.
 * Version: 1.0.0
 * Author: Ciborg
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

function ciborg_registrar_proyectos() {

    register_post_type(
        'proyecto',
        array(
            'labels' => array(
                'name'          => 'Proyectos',
                'singular_name' => 'Proyecto',
                'add_new_item'  => 'Añadir nuevo proyecto',
                'edit_item'     => 'Editar proyecto',
                'view_item'     => 'Ver proyecto',
                'search_items'  => 'Buscar proyectos',
                'not_found'     => 'No se encontraron proyectos'
            ),

            'public' => true,
            'show_ui' => true,
            'show_in_rest' => true,
            'has_archive' => true,

            'rewrite' => array(
                'slug' => 'proyectos',
                'with_front' => false
            ),

            'supports' => array(
                'title',
                'editor',
                'excerpt',
                'thumbnail',
                'revisions',
                'custom-fields'
            ),

            'menu_icon' => 'dashicons-portfolio'
        )
    );
}

add_action(
    'init',
    'ciborg_registrar_proyectos'
);

Instalar y activar el plugin

1. Crear la carpeta

Dentro de wp-content/plugins/, crea la carpeta ciborg-proyectos.

2. Crear el archivo PHP

Dentro de la carpeta, crea ciborg-proyectos.php y pega el código del plugin.

3. Activar el plugin

Entra al escritorio de WordPress, abre Plugins y activa Ciborg Proyectos.

4. Actualizar los enlaces permanentes

Entra en Ajustes → Enlaces permanentes y pulsa Guardar cambios. Esto actualiza las reglas de URL necesarias para reconocer el nuevo tipo de contenido.

Resultado: aparecerá una nueva sección llamada Proyectos en el panel de WordPress. Desde allí podrás crear y administrar registros individuales.
No ejecutes flush_rewrite_rules() en cada carga de página. Es una operación costosa y debe realizarse solamente cuando sea necesario, por ejemplo al activar un plugin que incorpora nuevas reglas de URL.

¿Cómo crear taxonomías personalizadas para un CPT?

Una taxonomía personalizada permite clasificar registros mediante términos. Es especialmente útil cuando necesitas organizar cientos de productos, negocios, proyectos o propiedades por categorías específicas.

WordPress incluye categorías y etiquetas para las entradas. Sin embargo, puedes crear taxonomías adicionales para tus tipos de contenido personalizados.

Ejemplo: clasificar proyectos por categoría

Supongamos que deseas organizar tus proyectos en categorías como:

  • Desarrollo web.
  • Automatización.
  • Software.
  • Comercio electrónico.

Puedes registrar una taxonomía llamada tipo_proyecto:

PHP · Registrar una taxonomía personalizada
function ciborg_registrar_taxonomia_proyectos() {

    register_taxonomy(
        'tipo_proyecto',
        array( 'proyecto' ),
        array(
            'labels' => array(
                'name' => 'Tipos de proyecto',
                'singular_name' => 'Tipo de proyecto',
                'search_items' => 'Buscar tipos',
                'all_items' => 'Todos los tipos',
                'edit_item' => 'Editar tipo',
                'add_new_item' => 'Añadir nuevo tipo'
            ),

            'public' => true,

            'hierarchical' => true,

            'show_in_rest' => true,

            'rewrite' => array(
                'slug' => 'tipo-proyecto'
            )
        )
    );

}

add_action(
    'init',
    'ciborg_registrar_taxonomia_proyectos'
);

La propiedad hierarchical permite determinar si la taxonomía funciona de forma jerárquica, similar a las categorías, o como un sistema de términos no jerárquicos, parecido a las etiquetas.

¿Cómo integrar una taxonomía en el CPT?

También puedes declarar las taxonomías asociadas al registrar el tipo de contenido mediante el argumento taxonomies:

'taxonomies' => array(
    'tipo_proyecto'
)

De esta forma, WordPress conoce la relación entre el tipo de contenido y la taxonomía. Para mantener una implementación consistente, conviene registrar las taxonomías y sus conexiones de forma coordinada.

Taxonomías para distintos proyectos

Custom Post Type Taxonomía Ejemplos
Negocios Rubro Alimentación, construcción, tecnología.
Propiedades Tipo de propiedad Casa, departamento, terreno.
Cursos Área de formación Programación, diseño, marketing.
Proyectos Tipo de proyecto Software, ecommerce, automatización.

¿Cómo añadir campos personalizados a un Custom Post Type?

Los campos personalizados permiten almacenar información adicional que no corresponde necesariamente al título o contenido principal de una publicación.

Por ejemplo, una ficha de propiedad puede necesitar precio, superficie, cantidad de habitaciones y ubicación. Una ficha comercial puede almacenar teléfono, dirección, sitio web y horario.

WordPress permite administrar estos datos mediante metadatos o post meta. La función register_post_meta() permite registrar campos para un tipo de contenido concreto.

Ejemplo: registrar un campo cliente

PHP · Registrar un metadato
function ciborg_registrar_meta_proyecto() {

    register_post_meta(
        'proyecto',
        'ciborg_cliente',
        array(
            'type' => 'string',

            'single' => true,

            'show_in_rest' => true,

            'sanitize_callback' => 'sanitize_text_field',

            'auth_callback' => function(
                $allowed,
                $meta_key,
                $post_id
            ) {
                return current_user_can(
                    'edit_post',
                    $post_id
                );
            }
        )
    );

}

add_action(
    'init',
    'ciborg_registrar_meta_proyecto'
);

Este código registra el metadato ciborg_cliente para el tipo de contenido proyecto. También permite exponerlo mediante la REST API, siempre que se cumplan los requisitos de compatibilidad del tipo de contenido.

Importante: para exponer metadatos personalizados en la REST API, registra el campo con show_in_rest y habilita el soporte de campos personalizados en el CPT. La disponibilidad también depende de la configuración de permisos.

Ejemplos de campos para distintos CPT

Contenido Campo Tipo de dato
Propiedad Precio Número
Propiedad Superficie Número
Negocio Teléfono Texto
Negocio Dirección Texto
Proyecto Cliente Texto
Curso Duración Número o texto

Para campos complejos, relaciones entre registros o interfaces administrativas avanzadas, puedes desarrollar una solución propia o utilizar herramientas especializadas de campos personalizados. Evalúa siempre cómo se almacenan los datos y qué tan fácil será migrarlos.

¿Cómo integrar un Custom Post Type con Gutenberg?

El editor de bloques Gutenberg puede utilizarse con tipos de contenido personalizados. Para ello, el CPT debe estar disponible en la REST API mediante el argumento:

'show_in_rest' => true

Al habilitar esta configuración, WordPress puede exponer el contenido a los endpoints REST y permitir que el editor de bloques interactúe con el tipo personalizado.

Configuración recomendada

register_post_type(
    'proyecto',
    array(
        'public' => true,
        'show_in_rest' => true,

        'supports' => array(
            'title',
            'editor',
            'excerpt',
            'thumbnail',
            'custom-fields'
        )
    )
);

Una vez registrado correctamente, podrás crear proyectos desde el escritorio y utilizar el editor de bloques para redactar su contenido.

La experiencia concreta depende de los soportes registrados, los bloques disponibles y las configuraciones adicionales del proyecto.

Si necesitas comprender el funcionamiento del editor, revisa nuestra guía sobre Gutenberg y el editor de bloques de WordPress.

¿Cómo conectar Custom Post Types con WordPress REST API?

Los tipos de contenido personalizados pueden exponerse mediante la REST API para que otras aplicaciones consulten sus registros. Esta integración permite utilizar los datos en interfaces JavaScript, aplicaciones móviles y plataformas externas.

El parámetro fundamental es show_in_rest.

'show_in_rest' => true

Si el tipo de contenido se llama proyecto, WordPress puede disponer de una ruta como:

https://tusitio.cl/wp-json/wp/v2/proyecto

También puedes definir una base personalizada mediante rest_base. Por ejemplo:

'rest_base' => 'proyectos'

En ese caso, la ruta puede utilizar:

https://tusitio.cl/wp-json/wp/v2/proyectos

Consultar proyectos mediante JavaScript

JavaScript moderno · fetch y async/await
async function obtenerProyectos() {

    const response = await fetch(
        '/wp-json/wp/v2/proyectos?per_page=10'
    );

    if (!response.ok) {
        throw new Error(
            `Error HTTP: ${response.status}`
        );
    }

    return await response.json();
}

try {

    const proyectos = await obtenerProyectos();

    console.log(proyectos);

} catch (error) {

    console.error(
        'No fue posible consultar proyectos:',
        error
    );

}

El ejemplo utiliza una solicitud GET para obtener los proyectos publicados que sean accesibles públicamente. Las operaciones de escritura requieren autenticación y permisos adicionales.

Seguridad: no expongas credenciales administrativas en JavaScript del navegador. Las operaciones privadas deben ejecutarse mediante mecanismos seguros de autenticación y autorización.

Para aprender más sobre rutas, solicitudes HTTP y autenticación, consulta nuestra guía de WordPress REST API.

¿Cómo crear plantillas para un Custom Post Type?

Un tipo de contenido personalizado puede utilizar plantillas propias para mostrar sus registros individuales y sus listados generales.

WordPress utiliza una jerarquía de plantillas. En temas clásicos, puedes crear archivos específicos para cada tipo de contenido:

Archivo Función
single-proyecto.php Muestra un proyecto individual.
archive-proyecto.php Muestra el archivo o listado de proyectos.
taxonomy-tipo_proyecto.php Muestra los registros de un término de esa taxonomía.
single.php Plantilla general de contenido individual cuando corresponde.
archive.php Plantilla general de archivos.

En temas de bloques también existen plantillas HTML específicas. Por ejemplo, puedes utilizar single-proyecto.html y archive-proyecto.html dentro de la estructura de plantillas del tema.

Ejemplo de archivo individual

En un tema clásico, el archivo single-proyecto.php puede utilizar el loop de WordPress para mostrar el título y contenido del proyecto:

<?php get_header(); ?>

<main class="proyecto-individual">

    <?php
    while ( have_posts() ) :
        the_post();
    ?>

        <article>

            <h1>
                <?php the_title(); ?>
            </h1>

            <div class="contenido-proyecto">
                <?php the_content(); ?>
            </div>

        </article>

    <?php endwhile; ?>

</main>

<?php get_footer(); ?>

Para un tema de bloques, la personalización se realiza mediante las plantillas y partes de plantilla del Editor del sitio, cuando el tema admite esa arquitectura.

¿Cómo consultar Custom Post Types con WP_Query?

La clase WP_Query permite recuperar registros de WordPress mediante parámetros personalizados. Es útil cuando necesitas crear listados, directorios, portafolios y secciones que muestran contenido de un CPT.

Ejemplo: obtener los últimos proyectos

PHP · Consultar un CPT con WP_Query
<?php

$args = array(
    'post_type' => 'proyecto',
    'posts_per_page' => 10,
    'post_status' => 'publish',
    'orderby' => 'date',
    'order' => 'DESC'
);

$proyectos = new WP_Query( $args );

if ( $proyectos->have_posts() ) :

    while ( $proyectos->have_posts() ) :

        $proyectos->the_post();

        ?>

        <article>

            <h2>
                <a href="<?php the_permalink(); ?>">
                    <?php the_title(); ?>
                </a>
            </h2>

            <div>
                <?php the_excerpt(); ?>
            </div>

        </article>

        <?php

    endwhile;

    wp_reset_postdata();

else :

    echo '<p>No hay proyectos disponibles.</p>';

endif;

?>

El argumento post_type indica qué tipo de contenido quieres consultar. También puedes combinar filtros por categoría, estado, autor, fecha y metadatos.

Consultar por una taxonomía

Para recuperar proyectos asociados al término de una taxonomía, puedes utilizar tax_query:

<?php

$args = array(
    'post_type' => 'proyecto',
    'posts_per_page' => 10,

    'tax_query' => array(
        array(
            'taxonomy' => 'tipo_proyecto',
            'field' => 'slug',
            'terms' => 'desarrollo-web'
        )
    )
);

$proyectos = new WP_Query( $args );

?>

De esta manera puedes generar listados segmentados por tipo de proyecto, rubro o cualquier taxonomía registrada.

La estructura de URLs es una parte importante de la arquitectura de un CPT. Una buena configuración permite generar direcciones comprensibles, consistentes y fáciles de navegar.

Si registras un CPT llamado proyecto con el slug público proyectos, puedes obtener direcciones como:

Tipo de URL Ejemplo
Archivo general https://tusitio.cl/proyectos/
Proyecto individual https://tusitio.cl/proyectos/sitio-corporativo/
Taxonomía https://tusitio.cl/tipo-proyecto/desarrollo-web/

¿Qué pasa si el CPT devuelve un error 404?

Si acabas de registrar un tipo de contenido y sus URLs no funcionan, comprueba que el registro se esté ejecutando correctamente y actualiza una sola vez las reglas de enlaces permanentes.

  1. Entra en el panel de WordPress.
  2. Abre Ajustes → Enlaces permanentes.
  3. Comprueba la configuración actual.
  4. Pulsa Guardar cambios para regenerar las reglas.
  5. Prueba nuevamente el archivo y una URL individual.

Evita ejecutar flush_rewrite_rules() en cada solicitud: puede afectar el rendimiento del sitio.

Seguridad y buenas prácticas al desarrollar Custom Post Types

Un CPT puede almacenar información pública, privada o datos que intervienen en procesos de negocio. Por eso, su desarrollo debe considerar permisos, validación, sanitización y control de acceso.

  • Registra los CPT en un plugin propio: mantén la estructura de datos separada del diseño de la web.
  • Utiliza nombres únicos: evita claves genéricas que puedan entrar en conflicto con otros plugins.
  • Configura los permisos: utiliza capacidades adecuadas para crear, editar, publicar y eliminar registros.
  • Valida la información: no confíes en los datos recibidos desde formularios o solicitudes externas.
  • Sanitiza los campos: adapta la sanitización al tipo de dato que almacenas.
  • Escapa las salidas: utiliza funciones como esc_html(), esc_url() y esc_attr() según el contexto.
  • Protege los endpoints: configura correctamente la autenticación y las capacidades de acceso.
  • Evita publicar metadatos privados: expón mediante la REST API únicamente los campos que deben ser accesibles.
  • Realiza respaldos: antes de modificar estructuras de datos o migrar contenidos.
  • Prueba en staging: no experimentes con nuevas estructuras directamente en producción.
Una precaución importante: cambiar el nombre interno de un CPT después de publicar cientos de registros puede exigir una migración de datos y ajustes de URLs. Define cuidadosamente la clave, el slug público y las taxonomías antes de construir un sistema grande.

Errores frecuentes al crear tipos de contenido personalizados

Error Consecuencia Solución
No activar show_in_rest El CPT no se integra correctamente con Gutenberg o la REST API. Definir show_in_rest => true.
Registrar el CPT demasiado tarde El tipo de contenido no está disponible cuando WordPress procesa determinadas consultas. Registrarlo durante el hook init.
Utilizar nombres genéricos Posibles conflictos con otros plugins. Usar claves y prefijos únicos.
Olvidar actualizar enlaces permanentes URLs individuales o archivos que devuelven 404. Regenerar las reglas de URL cuando sea necesario.
Guardar el CPT únicamente en el tema La estructura puede desaparecer al cambiar de tema. Registrar el tipo de contenido mediante un plugin.
Exponer todos los metadatos Riesgo de mostrar información que no debería ser pública. Configurar permisos y exposición individualmente.

Aplicaciones prácticas de los Custom Post Types

Los tipos de contenido personalizados permiten convertir WordPress en una plataforma estructurada para administrar información que va más allá de un blog tradicional.

Directorios comerciales

Puedes crear un CPT llamado negocio para almacenar fichas de comercios con dirección, teléfono, descripción, fotografías y rubros. Las taxonomías permiten organizar los registros por actividad o ubicación.

Plataformas inmobiliarias

Un CPT llamado propiedad puede guardar casas, departamentos, terrenos y oficinas. Cada registro puede contar con precio, superficie, habitaciones, dirección y características.

Portafolios profesionales

Un CPT de proyectos permite organizar trabajos realizados, clientes, tecnologías utilizadas, imágenes y descripciones. Es útil para estudios, agencias y profesionales independientes.

Plataformas educativas

Puedes crear tipos de contenido para cursos, lecciones, recursos y programas de formación. Las relaciones entre ellos permiten diseñar estructuras educativas más organizadas.

Catálogos de productos

Un CPT también puede servir para construir catálogos personalizados cuando necesitas una estructura propia. Si necesitas gestionar pagos, inventario, carritos y pedidos, evalúa utilizar una solución de ecommerce como WooCommerce en lugar de reconstruir todas esas funciones manualmente.

Preguntas frecuentes sobre Custom Post Types en WordPress

Respuestas a las preguntas más habituales sobre creación, configuración, taxonomías, campos personalizados, Gutenberg y REST API.

Documentación oficial para desarrolladores WordPress

Si deseas profundizar en el desarrollo de tipos de contenido personalizados, consulta estas referencias oficiales:

Guía técnica de Ciborg sobre Custom Post Types de WordPress. Los ejemplos deben adaptarse a la versión de WordPress, la arquitectura del sitio y las necesidades de cada proyecto. Implementa los cambios primero en un entorno de pruebas y conserva copias de seguridad antes de modificar estructuras de contenido existentes.

Carrito de compra
Scroll al inicio