Entendiendo los Custom Post Types
WordPress viene con tipos de contenido predefinidos (entradas, páginas, medios). Los Custom Post Types (CPT) te permiten crear tipos de contenido adicionales adaptados específicamente a las necesidades de tu proyecto: portfolio, testimonios, productos, eventos, equipo, proyectos o cualquier entidad que requiera estructura propia.
Por qué necesitas CPTs en proyectos profesionales
Los CPT organizan tu contenido de forma lógica y escalable. Separar casos de estudio de entradas de blog, por ejemplo, facilita la gestión, permite templates específicos para cada tipo y mejora la arquitectura de información. Además, puedes asignar capacidades y permisos distintos según el tipo de contenido.
Ventajas estructurales
Cada CPT puede tener sus propias taxonomías, campos personalizados, templates y ubicaciones en el admin. Esto mantiene tu interfaz administrativa limpia y enfocada. Los editores encuentran rápidamente el tipo de contenido que necesitan sin navegar entre entradas mezcladas.
Métodos para crear Custom Post Types
Existen tres aproximaciones principales: código puro, plugins dedicados o page builders con funcionalidad integrada. Cada método tiene sus ventajas según tu nivel técnico y requisitos del proyecto.
Método 1: Código en functions.php
El método más potente y flexible es registrar CPTs mediante código. Añade esto en el functions.php de tu tema o, preferiblemente, en un plugin personalizado:
function crear_portfolio_cpt() {
$args = array(
‘labels’ => array(
‘name’ => ‘Portfolio’,
‘singular_name’ => ‘Proyecto’
),
‘public’ => true,
‘has_archive’ => true,
‘supports’ => array(‘title’, ‘editor’, ‘thumbnail’, ‘excerpt’),
‘menu_icon’ => ‘dashicons-portfolio’,
‘rewrite’ => array(‘slug’ => ‘proyectos’),
);
register_post_type(‘portfolio’, $args);
}
add_action(‘init’, ‘crear_portfolio_cpt’);
Esta aproximación te da control total sobre cada parámetro: capacidades, jerarquía, soporte de características, posición en menú y estructura de URLs.
Método 2: Custom Post Type UI
Para quienes prefieren interfaz visual, el plugin CPT UI ofrece formularios intuitivos para crear CPTs sin tocar código. Es ideal para clientes no técnicos que necesitarán gestionar tipos de contenido. La desventaja es la dependencia del plugin; si se desactiva, tus CPTs desaparecen hasta reactivarlo.
Método 3: Advanced Custom Fields PRO
ACF PRO incluye funcionalidad para registrar CPTs directamente desde su interfaz. La ventaja es tener CPTs y campos personalizados gestionados desde un mismo lugar, ideal cuando trabajas extensivamente con ACF.
Taxonomías personalizadas: organizando tu contenido
Las taxonomías son sistemas de clasificación. WordPress incluye categorías y etiquetas, pero puedes crear taxonomías específicas para tus CPTs: tipos de proyecto, tecnologías utilizadas, sectores de actividad, ubicaciones geográficas.
Registro de taxonomías mediante código
Similar a los CPTs, registras taxonomías con register_taxonomy:
function crear_taxonomia_tecnologias() {
$args = array(
‘labels’ => array(
‘name’ => ‘Tecnologías’,
‘singular_name’ => ‘Tecnología’
),
‘hierarchical’ => true,
‘show_in_rest’ => true,
‘rewrite’ => array(‘slug’ => ‘tecnologia’),
);
register_taxonomy(‘tecnologia’, ‘portfolio’, $args);
}
add_action(‘init’, ‘crear_taxonomia_tecnologias’);
El parámetro hierarchical determina si funciona como categorías (jerárquico, con padres e hijos) o como etiquetas (plano).
Campos personalizados con Advanced Custom Fields
Una vez creados tus CPTs, probablemente necesites campos adicionales más allá del título y contenido. ACF permite añadir campos de cualquier tipo: texto, imagen, fecha, relación con otros posts, repetidores, grupos flexibles.
Configuración estratégica de campos
Crea grupos de campos específicos para cada CPT. Para un CPT de «Equipo», podrías incluir cargo, biografía corta, redes sociales y foto. Para «Eventos», fecha de inicio/fin, ubicación, precio y enlace a entradas.
Configura las ubicaciones de los grupos de campos para que aparezcan solo en los CPTs relevantes. Esto mantiene la interfaz de edición enfocada y evita confusión.
Templates personalizados para CPTs
WordPress busca automáticamente templates específicos según jerarquía. Para mostrar un CPT llamado «portfolio», crea single-portfolio.php en tu tema. Para el archivo de todos los proyectos, archive-portfolio.php.
Loops personalizados
Dentro de estos templates, construye loops específicos que muestren exactamente la información relevante de cada CPT, accediendo a los campos personalizados que hayas creado:
<?php
$tecnologias = get_the_terms(get_the_ID(), ‘tecnologia’);
echo get_field(‘año_proyecto’);
?>
Optimización SEO de CPTs
Configura URLs amigables mediante el parámetro rewrite. Activa has_archive si quieres una página índice de todos los elementos. Asegúrate de que show_in_rest esté en true para compatibilidad con el editor de bloques y API REST.
Utiliza plugins como Yoast SEO o Rank Math que reconocen automáticamente los CPTs y permiten configurar títulos, descripciones y schemas específicos para cada tipo.
Buenas prácticas y consideraciones
Registra CPTs en un plugin personalizado en lugar del functions.php del tema. Así, si cambias de tema, mantienes tu estructura de contenido. Utiliza nombres de CPT en singular, minúsculas y sin espacios ni caracteres especiales. Antes de lanzar, prueba exhaustivamente permisos y capacidades para asegurar que cada rol de usuario tenga el acceso apropiado.



