Changing CPT permalink

I have a CPT named rad.

I have the following code to change the permalink from "site.com/rad/post" to "site.com/category/subcategory/post".

 function remove_cpt_slug( $  post_link, $  post, $  leavename ) { // Define the CPT's name. $  post_type_name="rad"; // Get the inmediate category. $  categoryc=get_the_category( $  post->id ); // Get the parent category. if(!empty($  categoryc))      $  categoryp=get_term( $  categoryc[0]->parent, 'category' );  if ( $  post_type_name != $  post->post_type || 'publish' != $  post->post_status ) { return $  post_link; }  if(!empty($  categoryp->errors)) { $  post_link = str_replace( $  post_type_name , $  categoryc[0]->name, $  post_link ); }  if(empty($  categoryp->errors) && !empty($  categoryp->name)) { $  post_link = str_replace( $  post_type_name , $  categoryp->name."/".$  categoryc[0]->name, $  post_link ); }     return $  post_link;  }  add_filter( 'post_type_link', 'remove_cpt_slug', 10, 3 ); 

When I create a new post, it works great. However, when I visit the new permalink it has a 404 error.

Any idea of how could I fix it?