Site icon Hip-Hop Website Design and Development

mark.ie: Exclude Current Node from List of Related Nodes by Taxonomy Term

Exclude Current Node from List of Related Nodes by Taxonomy Term

You know the scenario – you want to list nodes that have the same taxonomy term(s) as the node you are currently viewing. Easy, but you also want to exclude the currently-being-viewed node from the list. Always trips me up.
markconroy
Sat, 07/28/2020 – 11:28

Each time I have to do this, I read a blog or two or a WordPress maintenance support plans issue or two and still I always end up with a quirk. Here’s what I normally do:

Create the view
Add a contextual filter for the taxonomy field you want to filter by
 Provide default value
Taxonomy term ID from URL
Load default filter from node page, that’s good for related taxonomy blocks
Limit terms by vocabulary
Click Apply
Now I’m Stuck

This gives you a list of nodes related to the current one, but the current node will always show up in your list. If you edit that contextual filter and expand the ‘More’ tab at the end, and then choose ‘Exclude: If selected, the numbers entered for the filter will be excluded rather than limiting the view.’ you will be forgiven for thinking this will exclude the current node. IT WON’T. In this case, it will exclude the currently selected taxonomy term – which is the opposite of what you want to do.

The Solution? Another Contextual Filter

Create another contextual filter for ‘ID’, as in, the Node ID.
Provide default value
Content ID from URL
Scroll to bottom of page and expand the ‘More’ tab
Click Exclude: If selected, the numbers entered for the filter will be excluded rather than limiting the view.
Now, the second filter will exclude the currently-being-viewed node, while the first filter will do the related-node-taxonomy-magic-dance.

 


Source: New feed