Tutoriales de WordPress de Confianza, cuando más los necesitas.
Guía para Principiantes de WordPress
Copa WPB
25 Millones+
Sitios web que usan nuestros plugins
16+
Años de experiencia en WordPress
3000+
Tutoriales de WordPress de expertos

Cómo agregar categorías a un tipo de publicación personalizado en WordPress

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.

Agregar categorías a tipos de publicación personalizados 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.

Editar tipos de publicación con el plugin CPT UI

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.

Activar categorías para un tipo de publicación personalizado en WordPress

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.

Categoría agregada a un tipo de publicación personalizado

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'.

Tipo de publicación faltante

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.

WPCode

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’.

Agregar un nuevo fragmento de código personalizado en WPCode

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

Seleccionar fragmento de PHP como tipo de código

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’.

Pega el código en el cuadro de 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’.

Activa y guarda tu fragmento de código personalizado

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

Tipo de publicación mostrado en la página de archivo de categorías

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:

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.

Descargo de responsabilidad: Nuestro contenido es compatible con el lector. Esto significa que si haces clic en algunos de nuestros enlaces, podemos ganar una comisión. Consulta cómo se financia WPBeginner, por qué es importante y cómo puedes apoyarnos. Aquí está nuestro proceso editorial.

El Kit de herramientas definitivo para WordPress

Obtén acceso GRATUITO a nuestro kit de herramientas: ¡una colección de productos y recursos relacionados con WordPress que todo profesional debería tener!

Interacciones del lector

39 CommentsLeave a Reply

  1. 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?

    • 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

  2. ¿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.

    • 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

  3. 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!

  4. ¿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

    • 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

  5. 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

  6. ¡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

    • 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

  7. 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;`

  8. 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

  9. 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?

  10. 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

    • Misma pregunta. ¿Necesitamos ejecutar una consulta personalizada si queremos crear un archivo de categorías de ese tipo de publicación personalizado?

  11. ¿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’);

  12. 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.

  13. ¡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 :)

  14. 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?

  15. 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?

  16. 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!

    • 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!

  17. 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?

  18. ¿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.

  19. 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.

  20. ¡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?

  21. 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.

Deja una respuesta

Gracias por elegir dejar un comentario. Ten en cuenta que todos los comentarios son moderados de acuerdo con nuestra política de comentarios, y tu dirección de correo electrónico NO será publicada. Por favor, NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.