Я нашел решение через request
фильтр
function example_rewrite_request($query){
$request_uri = urldecode( $_SERVER['REQUEST_URI'] );
$parsed_url = parse_url( $request_uri );
if ( preg_match( '/^\/shop/', $parsed_url['path'] ) ) {
$query['product_cat'] = 'my-category';
unset( $query['post_type'] );
return $query;
}
return $query;
}
add_filter( 'request', 'example_rewrite_request', 9999, 1 );