I can't find a comprehensive list of criteria for how WordPress determines which archive type template it chooses.
From what I understand it uses URL forms for this purpose, like:
example.com/category/some-category -> category.php (i guess tags work similarly)
example.com/2012 -> date.php
But what about author.php and taxonomy.php? What triggers the template hierarchy to use those routes?
My ignorance is about how WP selects certain templates for I which I don't know how to trigger. I think I understand category templates with higher specificity, and archive.php I understand as a catch-all before going to index.php, but I have no idea when WP will select for example author.php and why.
For example, suppose I have two posts by the same author. How do I make WP use the author.php template to show me the posts by that author?
I suppose the notes around each box in the template hierarchy chart is supposed to give some clue about this, but I don't understand when and where those pieces of code should be used. I did look at the hierarchy chart, but there are things about it I don't understand, which is part of the reason I'm posing this question.
For example, I can not read from the chart that if I have a URL on the form example.com/2012 it will use the date.php template. It makes sense, but I can't see that the URL should be on any form, especially this one.
In general I have a hard time understanding how WordPress selects which template(route) to take. I may have misunderstood, but I expect WordPress to determine which template to use before it starts interpreting its contents. At that point it can display anything you want depending on its contents and using the is_sometype() functions. What I don't understand is how it reaches that point. Have I got this reasoning wrong? I'd be very grateful if someone could address this point.
edit: Some follow-up questions after Chip's answer:
Do I understand it correctly that WP parses permalinks using rewrite rules to build the query, or else the query is already in "native" format, i.e. a URL followed by ? and a concatenation of query variables? Can a combination of both occur?
What is the definition of "current context" with regard to queries? Could you give an example?
What do the blue .keywords signify that are below each box in Chip's diagram?