Aquí está parte del código de uno de mis proyectos para configurar una estructura similar para enlaces permanentes (mismo slug base tanto para el tipo de publicación como para los archivos de taxonomía), tenga en cuenta los valores de los parámetros 'has_archive' y 'rewrite' de la publicación tipo y la taxonomía:
add_action( 'init', 'register_my_post_types' );
function register_my_post_types() {
register_post_type( 'movie',
array(
....
'has_archive' => 'movies',
'rewrite' => array(
'slug' => 'movies/%mv_category%',
'with_front' => false
),
'taxonomies' => array(
'mv_category',
),
)
);
register_taxonomy(
'mv_category',
array(
'movie'
),
array(
...
'hierarchical' => true,
'rewrite' => array(
'slug' => 'movies',
'with_front' => false,
'hierarchical' => false
)
)
);
) // end of create_my_post_types function
add_filter('post_type_link', 'filter_post_type_link', 10, 2);
function filter_post_type_link($link, $post)
{
if ($post->post_type != 'movie')
return $link;
if ($cats = get_the_terms($post->ID, 'mv_category'))
$link = str_replace('%mv_category%', array_pop($cats)->slug, $link);
return $link;
}
Luego puede acceder a la categoría 'Documental' del tipo de publicación de película con esta URL:
site.com/movies/documentary/
y 'Película A' de la categoría 'Documental' será:
site.com/movies/documentary/movie-a/
NOTA: Es importante registrar la taxonomía después del tipo de publicación, debido al orden que se generan las reglas de reescritura de enlaces permanentes en WordPress.