Cómo reescribir el slug de la página de archivo de un tipo de contenido personalizado

5 jul 2018, 19:03:18
Vistas: 15.2K
Votos: 5

Tengo un CPT llamado "case-studies" y el slug de la página de archivo de este CPT es www.my-domain.com/case-studies y el slug de los posts del CPT es www.my-domain.com/case-studies/nombre-del-case-study.

Ahora, por motivos de SEO, necesito cambiar el slug de la página de archivo a "testimonials-case-studies" para que el slug de la página de archivo sea www.my-domain.com/testimonials-case-studies/ y los slugs de los posts permanezcan como www.my-domain.com/case-studies/nombre-del-case-study (igual que antes).

¿Cuál es la mejor solución para esto?

Lo que he intentado hasta ahora:

  • Crear una plantilla de página personalizada y cambiar el slug de la página a /testimonials-case-studies/ y redirigir /case-studies/ a /testimonials-case-studies/ pero los posts www.my-domain.com/case-studies/nombre-del-case-study dejan de funcionar por problemas con la redirección.

  • Usar:

    'rewrite' => array(
        'slug' => 'testimonials-case-studies',
        'with_front' => false
    ),
    

En el tipo de contenido personalizado PERO el slug de los posts cambia a www.my-domain.com/testimonials-case-studies/nombre-del-case-study cuando DEBE ser: www.my-domain.com/case-studies/nombre-del-case-study

¿Existe alguna solución posible para esto?

0
Todas las respuestas a la pregunta 1
2
17

Pasa el slug del archivo deseado mediante has_archive:

$args = array(
    'rewrite'     => array( 'slug' => 'case-studies' ),
    'has_archive' => 'testimonials-case-studies',
);
5 jul 2018 19:08:36
Comentarios

También puede que necesites usar unregister_post_type() justo antes de volver a registrarlo, para que WordPress acepte el cambio.

WebElaine WebElaine
5 jul 2018 19:11:29

¡Sí! ¡Muchas gracias! https://codex.wordpress.org/Function_Reference/register_post_type#has_archive

andresgl andresgl
6 jul 2018 11:14:05