Looks like you can define the AND
logical operator with the URL parameters, specifically adding the “+” between your terms like this:
url?taxonomy=term1+term2
This will ensure that only posts containing all terms listed are returned.
Example:
https://example.com/blog?food=sauce+cheese
[tax_query] => WP_Tax_Query Object
(
[queries] => Array
(
[0] => Array
(
[taxonomy] => food
[terms] => Array
(
[0] => sauce
)
[field] => slug
[operator] => IN
[include_children] => 1
)
[1] => Array
(
[taxonomy] => food
[terms] => Array
(
[0] => cheese
)
[field] => slug
[operator] => IN
[include_children] => 1
)
)
[relation] => AND
Notice the relation is definitely AND between the terms.
In local testing, I can confirm the returned posts are only those that contain BOTH terms.