I'm know I'm asking a lot, especially as I am I haven't really coded for 15 years till I set me self the clang of building my website but...
What I'm looking for ideally is a Faceted Search where users can click on a range of Primary Category Types ( These May be Custom Categories or Custom Posts in WordPress), select All, or a sub-set. The User Would then be display a drop-down of COMMON attributes/or preferably hierarchical list of sub-categories. Now Many of these attributes/subcategories will be in common to all the primary categories. Others, which I’ll discuss in a moment, are specific to each Primary Category Types.
So for Example if the Primary Category was Web Programming Languages the next Category might be Paradigm: e.g.("Procedural, Object Oriented, Declarative”), of which the user could select one or many, which may then reduce the Primary Category Selection List. A third level of attribute/sub-category might be check-box for Tier Support” (e.g. "server side","middle tier" client side"). And so on to n number of hierarchy levels/attributes.
(An Added complexity here is that The Primary Tier Web Programming Languages can belong to multiple paradigms and be applicable to multiple Tiers in which case you have to decide whether your search is AND or OR, (I am assuming OR so if Primary Category fits only a sub-set of the sub-hierarchies/attributes they are not automatically filtered out but determine i.e. ranking in the result set ). This could of course or be user definable or you could if you were ablate re-calculate the result set union every time the user selected a category and distinguish ‘perfect’ from ‘partial matches_
However the real challenge would be if users wanted all "Server Side Languages", regardless of the Programming Language. If you selected an ALL option Tiers but maintained your limitation of the Paradigm Criteria your over all result set wouldn't change immediately -because you are not filtering out any of the above criteria).
I 'guess perhaps' the easiest way todo this would be to allow the user to specify the drill-down order because in this example programming languages are really at the leaf level so it would be better to start with some category group.
So I mentioned another factor is that some Primary Categories a well as having common sub catgories would have additional sub-categories of their own...perhaps better viewed as unique attributes. For example C++ might have Vendor (e.g. Borland, Microsoft). I see these being displayed at the bottom of the hierarchical drop-down and the would of course only apply the the specific Primary Type with combined with Common Type inclusions.
Continued in Part 2: There is a 5000 word limit