Hi,
Thank you for contacting us and I'd be happy to assist.
Your observation is correct and what you noticed is the expected behaviour. In WordPress taxonomy query, there is no operator available to check exclusively for a term. This means that if you've queried for all the posts with the "audio" category term, it will bring in all the results which have the "audio" category term, even if those posts have other category terms like "video", "text" etc.
A logical solution to fulfill this specific requirement could be to introduce another term, which deals with the common term cases. For example, suppose your website currently has two category terms:
1. Audio
2. Video
And there are cases where one post can have both these terms as well. So for those posts, instead of assigning both terms "Audio" and "Video", you can attach only a third term:
3. Audio & Video
This way, some of your posts will have the "Audio" term and some will have the "Video" term, and for cases, where both these are needed, you can only attach the third new term "Audio & Video".
If this solution doesn't work, then another workaround can be to remove the taxonomy filter from the view's query filter section and use a conditional display statement in your view, to show the results, which have only a specific term.
( ref: https://toolset.com/documentation/legacy-features/views-plugin/conditional-html-output-in-views/ )
For example:
<wpv-loop>
[wpv-conditional if="( '[wpv-post-taxonomy type='category' format='slug']' eq 'category-a' )"]
.......
[/wpv-conditional]
</wpv-loop>
In this example, I have wrapped the output of the view's loop item, inside a condition that shows the current post, only if it has the "category" term with the slug "category-a", alone. For results, where more than one category term exists, the condition will become false and they will not be shown in the view's output.
The downside of this approach is that if you decide to use the pagination feature with the view, it will be affected. This is because the view's query will originally be bringing in all the results with any category term, but the conditional display will be stoping some of them from showing.
I hope this helps and please let me know if you need any further assistance around this.
regards,
Waqar