1 Answer
1

There are probably a ton of ways to do this but this is how I would do it.

Create a view display with an argument that filters by taxnonomy term translated from name to tid. This view will work as the front page.

Also create a view display that takes two arguments, checking if the second argument is a node tagged with the first arguments taxonomy term name. If it's not return not found.

Note, we will only access these views in code so it doesnt matter if they are pages or blocks. Make sure not to name them the same as the themes if they are pages though, then they will override our menu entries.

You could also query stuff just like in node.module but personally I prefer using views for doing the filtering. If you're unfamiliar with the arguments passed to views_embed_view() in the example_menu() function you can find its documentation here