Pretty permalink structure with multiple (AND OR) taxonomies

In general there are the following considerations and choices:

  1. Does WP do this already?

Best case scenario when use case is reasonably supported by core natively, just configure to that.

  1. Are “pretty” permalinks critical or optional?

In general GET queries are much more easier to work with, at the cost of being “ugly”. Pretty permalinks look better, but for anything complex need complete custom rules developed via WP Rewrite API, which is horrible. You want a reasonable balance of how mush of the system needs to be pretty to how hard it is to implement and have robustly working.

  1. Is your structure unambiguous?

It is often missed that WP needs to correctly “guess” what pretty URL refers to to be able to resolve it into correct query variables. Very often people want structures which are horribly confusing to code and erode the difference between different types of data. That makes for a very fragile solutions which are usually notoriously bugged.

In a nutshell:

  1. work out your structure in detail
  2. determine which queries you want via pretty permalinks and which via GET queries
  3. use WP APIs in general and Rewrite API specifically to implement