better taxonomy query URL syntax
|Reported by:||misterbisson||Owned by:|
Problem: WP's native taxonomy URL syntax supports logical OR/IN and AND operations, but not NOT IN. Blog post with more rambling: http://maisonbisson.com/blog/post/16074/better-taxonomy-query-syntax/ .
Solution: the attached patch extends the URL syntax to support these logical operators.
- Taxonomy terms are separated by commas (it preserves support for the old +separated syntax).
- Terms prepended with a + are required (AND)
- Terms prepended with a - are excluded (NOT IN)
- All other terms are simply IN
- http://site.org/tag/term-one,term-two/ : posts containing one or more of the named terms
- http://site.org/tag/+term-one,+term-two/ : posts containing both of the named terms
- http://site.org/tag/term-one,-term-two/ : posts containing term-one, but excluding term-two
Working examples (at least until I revert my site):
- http://maisonbisson.com/blog/post/tag/wordpress,+mysql/ : IN and AND syntax (it's an accident of how the query is handled internally that it doesn't require a + to be AND'd in this case)
- http://maisonbisson.com/blog/post/tag/wordpress+mysql/ : old-style AND syntax
- http://maisonbisson.com/blog/post/tag/wordpress,-mysql/ : NOT IN syntax for the second term
- http://maisonbisson.com/blog/post/tag/-wordpress,+mysql/ : NOT IN the first term, AND the second term
About the patch:
The patch disables the special handling of tags. This is just to narrow the scope of work necessary to demonstrate a working patch.