Tipos de contenido personalizados (CPT UI)

Un portfolio no es un blog: tus trabajos no son "entradas" con fecha, son proyectos con cliente, año, disciplina e imágenes.

Tipo de contenido personalizado = entidad; taxonomía = clasificación N:M; campo personalizado = atributo extra.

CPT UI los crea sin programar; se guardan en las tablas de siempre.

Activa archivo y API REST; slugs en singular y sin acentos.

  • Un portfolio no es un blog: tus trabajos no son "entradas" con fecha, son proyectos con cliente, año, disciplina e imágenes. WordPress permite crear tipos de contenido personalizados (Custom Post Types, CPT) y taxonomías propias para modelar tus datos igual que hiciste con el modelo E/R de la lección Diseño conceptual: entidad-relación, pero sin escribir SQL.
  • En el modelo E/REn WordPress Entidad (Proyecto)Tipo de contenido personalizado: proyecto Atributos simples (título, descripción, imagen)Título, contenido, imagen destacada, extracto Otros atributos (cliente, año)Campos personalizados (en wp_postmeta) Entidad para clasificar con relación N:M (Disciplina)Taxonomía propia: disciplina
  • Todo se sigue guardando en las tablas que viste en la lección WordPress por dentro: instalación local con WordPress Studio: los proyectos en wp_posts con post_type = 'proyecto' y sus disciplinas en las tablas de términos.
  • Custom Post Type UI (CPT UI) es un plugin gratuito que crea tipos de contenido y taxonomías desde un formulario.
  • Plugins → Añadir nuevo, busca Custom Post Type UI, instálalo y actívalo. CPT UI → Añadir/editar tipos de contenido:Slug del tipo de contenido: proyecto (en singular, minúsculas, sin acentos ni espacios; es el nombre interno y no conviene cambiarlo después). Etiqueta plural: Proyectos. Etiqueta singular: Proyecto. En los ajustes, revisa:Tiene archivo (Has Archive): Sí, para tener una página que liste todos los proyectos (/proyecto/). Mostrar en la API REST (Show in REST API): Sí. Lo necesita el editor de bloques y lo usarás en la lección Del gestor a JavaScript: leer datos por API para leer los proyectos con JavaScript. Soporta (Supports): título, editor, imagen destacada, extracto. Guarda. Aparece Proyectos en el menú del escritorio.

Introducción

Un portfolio no es un blog: tus trabajos no son "entradas" con fecha, son proyectos con cliente, año, disciplina e imágenes. WordPress permite crear tipos de contenido personalizados (Custom Post Types, CPT) y taxonomías propias para modelar tus datos igual que hiciste con el modelo E/R de la lección Diseño conceptual: entidad-relación, pero sin escribir SQL.

Del modelo E/R a WordPress

En el modelo E/REn WordPress Entidad (Proyecto)Tipo de contenido personalizado: proyecto Atributos simples (título, descripción, imagen)Título, contenido, imagen destacada, extracto Otros atributos (cliente, año)Campos personalizados (en wp_postmeta) Entidad para clasificar con relación N:M (Disciplina)Taxonomía propia: disciplina

Todo se sigue guardando en las tablas que viste en la lección WordPress por dentro: instalación local con WordPress Studio: los proyectos en wp_posts con post_type = 'proyecto' y sus disciplinas en las tablas de términos.

Crear el tipo «Proyectos» con CPT UI

Custom Post Type UI (CPT UI) es un plugin gratuito que crea tipos de contenido y taxonomías desde un formulario.

Plugins → Añadir nuevo, busca Custom Post Type UI, instálalo y actívalo. CPT UI → Añadir/editar tipos de contenido:Slug del tipo de contenido: proyecto (en singular, minúsculas, sin acentos ni espacios; es el nombre interno y no conviene cambiarlo después). Etiqueta plural: Proyectos. Etiqueta singular: Proyecto. En los ajustes, revisa:Tiene archivo (Has Archive): Sí, para tener una página que liste todos los proyectos (/proyecto/). Mostrar en la API REST (Show in REST API): Sí. Lo necesita el editor de bloques y lo usarás en la lección Del gestor a JavaScript: leer datos por API para leer los proyectos con JavaScript. Soporta (Supports): título, editor, imagen destacada, extracto. Guarda. Aparece Proyectos en el menú del escritorio.

📌 Nota. Los nombres exactos de las opciones pueden variar según la versión del plugin y el idioma del escritorio: estos son los de septiembre de 2026 y pueden haber cambiado.

Crear la taxonomía «Disciplinas»

CPT UI → Añadir/editar taxonomías:Slug: disciplina. Etiquetas: Disciplinas / Disciplina. Adjuntar a los tipos de contenido: marca Proyectos. Jerárquica: Sí si quieres que funcione como las categorías (Diseño → Identidad), No si prefieres etiquetas libres. Mostrar en la API REST: Sí. Guarda y crea las disciplinas: Branding, Web, Motion, Ilustración…

Crear proyectos

En Proyectos → Añadir nuevo: título, descripción con bloques, imagen destacada (con su texto alternativo), extracto y disciplinas. Crea al menos seis para tener con qué trabajar en las lecciones siguientes.

Campos personalizados

Para datos como el cliente o el año, WordPress tiene campos personalizados, que se guardan en wp_postmeta como pares clave-valor:

Los nativos se activan en el editor: Opciones (⋮) → Preferencias → Paneles → Campos personalizados (así en septiembre de 2026; la ruta puede cambiar con la versión). Plugins como Advanced Custom Fields (ACF) crean formularios cómodos con tipos (texto, número, fecha, imagen).

Para empezar, muchas veces basta con el título, el extracto y las disciplinas.

Compruébalo en la base de datos

En phpMyAdmin (lección WordPress por dentro: instalación local con WordPress Studio):

SELECT ID, post_title, post_status FROM wp_posts WHERE post_type = 'proyecto'; SELECT t.name, tt.count FROM wp_terms t JOIN wp_term_taxonomy tt ON tt.term_id = t.term_id WHERE tt.taxonomy = 'disciplina';

Tus proyectos y disciplinas están ahí, con la misma estructura que las entradas y las categorías.

Buenas prácticas de modelado

Un tipo de contenido por entidad con identidad propia (Proyectos, Servicios, Testimonios). No lo crees para algo que es una sola página. Taxonomía para clasificar y filtrar (disciplina, año como grupo, cliente si hay varios proyectos por cliente); campo para datos únicos de cada elemento (el enlace al proyecto publicado). Slugs en singular, en minúsculas y sin acentos; decídelos antes de crear contenido. Menos es más: dos o tres taxonomías bien pensadas funcionan mejor que diez.

Practica

Crea el tipo proyecto y la taxonomía disciplina con CPT UI. Da de alta seis proyectos con imagen destacada, extracto y disciplina. Visita el archivo /proyecto/ y un proyecto suelto. Ejecuta las consultas de comprobación y localiza tus proyectos. Dibuja el modelo E/R de tu portfolio y márcalo: qué es tipo de contenido, qué es taxonomía y qué es campo.

Errores frecuentes

Slugs con mayúsculas, espacios o que coinciden con otros (page, post). No activar Tiene archivo y no encontrar la página de listado. No activar Mostrar en la API REST: el editor de bloques no aparece y la API no devuelve los proyectos. No asociar la taxonomía al tipo de contenido. Cambiar el slug cuando ya hay contenido: los proyectos "desaparecen" (siguen con el slug viejo en la base de datos). Si al abrir un proyecto sale un error 404, guarda de nuevo Ajustes → Enlaces permanentes.

WordPress
35

Tipos de contenido personalizados (CPT UI)

Un portfolio no es un blog: tus trabajos no son "entradas" con fecha, son proyectos con cliente, año, disciplina e imágenes.

Código del tema: CPT UI

📘 Teoría

Introducción

Un portfolio no es un blog: tus trabajos no son "entradas" con fecha, son proyectos con cliente, año, disciplina e imágenes. WordPress permite crear tipos de contenido personalizados (Custom Post Types, CPT) y taxonomías propias para modelar tus datos igual que hiciste con el modelo E/R de la lección Diseño conceptual: entidad-relación, pero sin escribir SQL.

Del modelo E/R a WordPress

En el modelo E/REn WordPress
Entidad (Proyecto)Tipo de contenido personalizado: proyecto
Atributos simples (título, descripción, imagen)Título, contenido, imagen destacada, extracto
Otros atributos (cliente, año)Campos personalizados (en wp_postmeta)
Entidad para clasificar con relación N:M (Disciplina)Taxonomía propia: disciplina

Todo se sigue guardando en las tablas que viste en la lección WordPress por dentro: instalación local con WordPress Studio: los proyectos en wp_posts con post_type = 'proyecto' y sus disciplinas en las tablas de términos.

Crear el tipo «Proyectos» con CPT UI

Custom Post Type UI (CPT UI) es un plugin gratuito que crea tipos de contenido y taxonomías desde un formulario.

  1. Plugins → Añadir nuevo, busca Custom Post Type UI, instálalo y actívalo.
  2. CPT UI → Añadir/editar tipos de contenido:
    • Slug del tipo de contenido: proyecto (en singular, minúsculas, sin acentos ni espacios; es el nombre interno y no conviene cambiarlo después).
    • Etiqueta plural: Proyectos. Etiqueta singular: Proyecto.
  3. En los ajustes, revisa:
    • Tiene archivo (Has Archive): Sí, para tener una página que liste todos los proyectos (/proyecto/).
    • Mostrar en la API REST (Show in REST API): Sí. Lo necesita el editor de bloques y lo usarás en la lección Del gestor a JavaScript: leer datos por API para leer los proyectos con JavaScript.
    • Soporta (Supports): título, editor, imagen destacada, extracto.
  4. Guarda. Aparece Proyectos en el menú del escritorio.

📌 Nota. Los nombres exactos de las opciones pueden variar según la versión del plugin y el idioma del escritorio: estos son los de septiembre de 2026 y pueden haber cambiado.

Crear la taxonomía «Disciplinas»

  1. CPT UI → Añadir/editar taxonomías:
    • Slug: disciplina. Etiquetas: Disciplinas / Disciplina.
    • Adjuntar a los tipos de contenido: marca Proyectos.
    • Jerárquica: Sí si quieres que funcione como las categorías (Diseño → Identidad), No si prefieres etiquetas libres.
    • Mostrar en la API REST: Sí.
  2. Guarda y crea las disciplinas: Branding, Web, Motion, Ilustración…

Crear proyectos

En Proyectos → Añadir nuevo: título, descripción con bloques, imagen destacada (con su texto alternativo), extracto y disciplinas. Crea al menos seis para tener con qué trabajar en las lecciones siguientes.

Campos personalizados

Para datos como el cliente o el año, WordPress tiene campos personalizados, que se guardan en wp_postmeta como pares clave-valor:

  • Los nativos se activan en el editor: Opciones (⋮) → Preferencias → Paneles → Campos personalizados (así en septiembre de 2026; la ruta puede cambiar con la versión).
  • Plugins como Advanced Custom Fields (ACF) crean formularios cómodos con tipos (texto, número, fecha, imagen).

Para empezar, muchas veces basta con el título, el extracto y las disciplinas.

Compruébalo en la base de datos

SELECT ID, post_title, post_status
FROM wp_posts
WHERE post_type = 'proyecto';

SELECT t.name, tt.count
FROM wp_terms t
JOIN wp_term_taxonomy tt ON tt.term_id = t.term_id
WHERE tt.taxonomy = 'disciplina';

Tus proyectos y disciplinas están ahí, con la misma estructura que las entradas y las categorías.

Buenas prácticas de modelado

  • Un tipo de contenido por entidad con identidad propia (Proyectos, Servicios, Testimonios). No lo crees para algo que es una sola página.
  • Taxonomía para clasificar y filtrar (disciplina, año como grupo, cliente si hay varios proyectos por cliente); campo para datos únicos de cada elemento (el enlace al proyecto publicado).
  • Slugs en singular, en minúsculas y sin acentos; decídelos antes de crear contenido.
  • Menos es más: dos o tres taxonomías bien pensadas funcionan mejor que diez.

Practica

  1. Crea el tipo proyecto y la taxonomía disciplina con CPT UI.
  2. Da de alta seis proyectos con imagen destacada, extracto y disciplina.
  3. Visita el archivo /proyecto/ y un proyecto suelto.
  4. Ejecuta las consultas de comprobación y localiza tus proyectos.
  5. Dibuja el modelo E/R de tu portfolio y márcalo: qué es tipo de contenido, qué es taxonomía y qué es campo.

Errores frecuentes

  • Slugs con mayúsculas, espacios o que coinciden con otros (page, post).
  • No activar Tiene archivo y no encontrar la página de listado.
  • No activar Mostrar en la API REST: el editor de bloques no aparece y la API no devuelve los proyectos.
  • No asociar la taxonomía al tipo de contenido.
  • Cambiar el slug cuando ya hay contenido: los proyectos "desaparecen" (siguen con el slug viejo en la base de datos).
  • Si al abrir un proyecto sale un error 404, guarda de nuevo Ajustes → Enlaces permanentes.

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros. culTest

La hice en febrero de 2026 para facilitar el aprendizaje de mis alumnos. La idea es aprender desarrollo web practicando y que el proyecto siga creciendo con nuevos temas, tests y retos.

Está inspirada en MDN, W3Schools, CodePen, Manz y muchos otros sitios de documentación sobre desarrollo web. Quería combinar teoría útil, ejemplos ejecutables, retos y el sistema de tests que ya tenía en culTest. culTest

Si te gustó, si no te gustó o si quieres escribirme, puedes hacerlo en cristianeslava@gmail.com