什么决定Wordpress何时加载存档模板或页面模板?

I am rewriting the URLs for a custom post type.

// Add rewrite rule
function custom_rewrite_basic() {
  add_rewrite_rule(
            '^movies/([^/]*)/([^/]*)/?',
            'index.php?post_type=movies&movie_id=$matches[1]',
            'top'
        );
}
add_action('init', 'custom_rewrite_basic');

Full code available in this thread regarding another issue: WordPress - request post by url with custom field value

However the above code only sends me to the archive.php page.

URL example: example.com/movies/157336/ The ID is a custom field, and not the actual post ID.

When I rewrite the URL to index.php?post_type=movies&movie_id=$matches[1]&name=$matches[2] then wordpress loads the single.php

Yes I have read through https://developer.wordpress.org/themes/basics/template-files/ and https://developer.wordpress.org/themes/basics/template-hierarchy/ however it does not mention anything about what is required to request the single.php or archive.php page.

From trial and error it seems when the GET parameters p or name are available, then WordPress loads the single.php, otherwise it loads archive.php

I want wordpress to load the single.php or in this case single-movies.php and not archive.php How can I tell wordpress to do that?