Opened 13 years ago
Closed 11 years ago
#19705 closed enhancement (wontfix)
better taxonomy query URL syntax
Reported by: | misterbisson | Owned by: | |
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | normal | Version: | 3.3 |
Component: | Query | Keywords: | has-patch |
Focuses: | Cc: |
Description
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
Examples:
- 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.
Attachments (1)
Change History (3)
#2
@
11 years ago
- Milestone Awaiting Review deleted
- Resolution set to wontfix
- Status changed from new to closed
Not quite sure that's "better" - the URL isn't the greatest place to introduce logical AND
as +
- this seems to only make sense if you are using your URL as a user input for searching. Filtering pre_get_posts
to alter tax_query
and do a custom intersection is the suggested approach here.
+1 for this patch and the functionality it adds.