We are building a resorts site and we're facing a huge taxonomy problem.
On one side, we have administrative locations such as country>>region>>department and "natural" locations, such as mountain-range>>sub-mountain range. This can be sorted out just by arranging two different taxonomies, like admin-locations and natural-locations, for example. This sounds easy, but not so much when you realize that some resorts share two or more places. There's even one resort that belongs to three European countries at the same time!
But we're also dealing with other kinds of locations, such as national parks (which can cover two or more regions or departments, for example), regional parks, natural parks, tourist regions and sub-regions, even valleys, lakes or items that could only fit in an "other" kind of special label.
So the only solution we can think of is to build more taxonomies and add some term metas to sort of organize all this mess by linking terms of different taxonomies. Say, for example, you want to list which resorts there are in some national park that covers two regions and at the same time is in two different tourist areas, and is also part of a bigger several-resort area with five other resorts.
We have some dozens of such cases, literally. So we want the user to see, for example, a menu with some different options drop-down that tell them, well, their options.
Today my question is not about building such a menu. It is about how to organise that taxonomies mess. We're aware that there is a performance and scale problem when querying when you have post and term metas, so it is a bit of a complex problem for us. We've thought that we could "connect" terms of different taxonomies with term meta, but we're not completely sure of how exactly and if it would be then easily queryable and sortable.
Our problem becomes apparent with an example:
Say the user is viewing France>>some region>>some department. We should be able, on one side, to offer him/her to see the natural locations available in that area (remember, a mountain range can cover several departments, regions and even countries, even a sub-mountain range can do that. The same goes for parks or tourist areas). On the other hand, they must be aware of the national, regional and natural parks in that zone, as well as the tourist regions, smaller tourist regions inside those, etc etc.
All these items must be terms in taxonomies so the user can see the list of resorts available in them.
How would you go about these different ways to organise locations? Remember, the main problem is one kind of location can cover part of other kind of location, or can mix with other types of locations in different combinations.
Thanks in advance.
**** UPDATE for clarity ****
The site is about Resorts, so that is a CPT.
Administrative locations, natural locations, valleys, parks and tourist regions are all locations, so taxonomies. I'm guessing each kind of location is a different hierarchical taxonomy.
The main problem here is like in this example, which is a real one:
User is viewing a list of resorts that are in country-1>>region-1>>department-1.
Let's say that, in this department, there is a regional-park-1. So one obvious requirement is to show the user this optional location in the menu or options dropdown. If the user clicks, he/she will see a list of resorts in regional-park-1. That's easy.
The complexity comes with this: let's say that regional-park-1 also covers another department, with the department-2 taxonomy term. So, when the user is in regional-park-1, we need him/her to see department-1 and department-2 in our menu/options. But since regional-park-1 can only belong to one of the two departments, we have a problem. One solution could be for parks to be another taxonomy and make its terms to be related with terms from the admin-locations taxonomy, in this case department-1 and department-2.
This can become worse easily: there's a tourist-area-1 that covers regional-park-1 and a regional-park-2 next to it. So, while our user still is in regional-park-1, we need to show him/her (dinamically) that there's also tourist-area-1 available with its own list of Resorts, that may be different from the lists of the other Taxonomy Terms mentioned.
This example's scheme would be:
Tax admin-locations: Parks: Tourist-areas
This can get more complex with valleys that can belong to even three different countries, Resorts (cpt) that belong to more than one country, tourist areas inside greater tourist areas, regional parks that belong to national parks and at the same time extend beyond the border to become regional park of another country but now this part is not in a national park, etc.
We must find a way to relate taxonomies so, when the user is on any taxonomy term viewing the list of Resorts for that location, show them dinamically what other related locations are available.
So, again, the question is how would you organise things to accomplish this.