19th May '23
/
8 comments

Conditionally Outputting Elements only for Posts that have a Specific Taxonomy Term

A user asked:

I have a loop with some elements shown in a card.
Some items have the taxonomy “Bestseller”.
In the card I have a text with “Bestseller” that should be shown if taxonomy = “Bestseller”.
How can I do that ?

We can use the core WordPress has_term() function for checking if the current post has a specific term of a given taxonomy.

In this example, we shall work with a Bricks query loop in which the query type is set to Projects custom post type. This CPT has a corresponding Project Type taxonomy whose sample terms are Construction, Parks and Libraries.

Structure:

Now the objective is to display the last heading element only for the project items that are of Construction type.

For this we apply a Dynamic data condition on the Heading element like this:

{echo:has_term(construction,project-type)}

We are passing the term slug (name or ID can also be given) as the first argument for the has_term() function. The second argument is the taxonomy name.

Note: There should NOT be a comma between the two arguments.

Reference

https://developer.wordpress.org/reference/functions/has_term/

Get access to all 630 Bricks code tutorials with BricksLabs Pro

8 comments

  • Maddalena Fasser

    Hello Sridhar, we could also use these dynamic data tags in the condition:

    Bricks, Free Dynamic Data {post_terms_your_taxonomy_slug:plain}

    Then set the operator to “contains” and specify the taxonomy term.

    Does it make sense? Thanks, as always, for your time and support!

    (As a side note, BrickExtras users should now find a Post Category condition that makes this even more convenient.)

    • Maddalena Fasser

      I’m not sure what happened, but it seems my comment included "Bricks, Free Dynamic Data" by mistake, as I didn’t write that part. 😅 I'll try again to write the dynamic data tags: Bricks, Free Dynamic Data {post_terms_your_taxonomy_slug:plain}

      • Maddalena Fasser

        Ok, I see, Bricks actually rendered the dynamic data tags in the comments! Here they are again (without curly braces to avoid rendering):

        post_terms_category:plain post_terms_post_tag:plain post_terms_your_taxonomy_slug:plain

  • Cheok Way Leong

    Hi, what if I wanna target all the taxonomies in "project-type" instead of just "construction". Would it be = 1 or > 0?

  • You say there should NOT be a comma between the two arguments, but your example does have a comma between them? Please clarify this.

Leave your comment

 

Related Tutorials..

Pro
At Least 1 Search Result Condition in Bricks

At Least 1 Search Result Condition in Bricks

Registering a custom condition to render elements depending on whether there is at least one search result.
Categories:
Pro
Conditional Section when Post has a Featured Image in Bricks

Conditional Section when Post has a Featured Image in Bricks

This Pro tutorial provides the steps to output a Section in Bricks on single posts (of any post type) only if the post has a…
Categories:
Pro
Bricks Dynamic Data Tag for Text-type Custom Field Value with Word Limit

Bricks Dynamic Data Tag for Text-type Custom Field Value with Word Limit

How to register a new dynamic tag for setting excerpt word limits and outputting an ellipsis (...) at the end.
Categories:
Pro
Conditional Related Posts in Bricks

Conditional Related Posts in Bricks

How to output a section only if there is at least 1 related post for the current post being viewed.
Categories:
Weekday Condition in Bricks

Weekday Condition in Bricks

As of Bricks 1.7, the built-in "Weekday" condition does not work correctly. This is most likely due to it not taking the site's timezone (set…
Categories:
Check if a given category has at least one post

Check if a given category has at least one post

There could be situations where you want to check if a given category (by its slug) has at least 1 post assigned to that category.…
Categories:
Month-based Background Image in Bricks

Month-based Background Image in Bricks

How to have different background images for an element for different quarters in a year.
Categories: