how should I use wordpress conditionals ?

Dear experts,

I am having some issues adding a text below a page header of my custom taxonomies template. For example I have the following custom taxonomy template: taxonomy-dirtax-games.php following wordpress docs such as taxonomy-{taxonomy}-{term}.php. I am trying to add a text below the header with the next code:

function stufftodo_nav_menu() {
      
      if (has_term( 'games', 'dirtax' ) ){
    echo '<div class="side-nav-text">GAMES</div>';
      }
};
add_action('genesis_after_header', 'stufftodo_nav_menu', 5);

For some reason it does not display the text unless I have post under that taxonomy. For example If I go to the Games page and there is nothing in there, the text Games won´t be displayed unless I add  a post.

Could you please help me to solve that, I am not sure if it has to do with the way I am using the conditional

Thanks
glepizaAsked:
Who is Participating?
 
glepizaConnect With a Mentor Author Commented:
Hi Tom,

nop, you did not missundertand me. But for some reason it is still not working. My conditional   if (has_term( 'games', 'dirtax' ) ) only works if I there is a post, otherwise it won´t show anything. Do you know if there is something like isset(has_term( 'games', 'dirtax' ) )
0
 
Tom BeckConnect With a Mentor Commented:
What if you used this instead:

if (is_page_template("taxonomy-dirtax-games.php ")) {
      echo '<div class="side-nav-text">GAMES</div>';
}

Or maybe I'm misunderstanding what you are trying to do.
0
 
glepizaAuthor Commented:
Hello,

One question, I was adding that function inside function.php, but now I am adding it inside axonomy-dirtax-games.php and it seems to be working. Is that ok? Sometimes I don´t know what should go into functions.php or page templates etc...
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
glepizaAuthor Commented:
I mean, I am not writing the condition, only:

function stufftodo_nav_menu() {
     
    echo '<div class="side-nav-text">GAMES</div>';
 };
add_action('genesis_after_header', 'stufftodo_nav_menu', 5);
0
 
glepizaAuthor Commented:
hmm, never mind, i need to display that word game in other templates as well. So am back to the beginning.
0
 
Tom BeckConnect With a Mentor Commented:
has_term() only checks for a matching term inside of posts so it should do nothing on a page without posts. If the parenthesis are left empty, it will check if there are any terms in the post (kind of like isset).

I'm still a little confused. If you are creating a certain custom page templates to display posts with a certain term, why don't you just place the heading directly in the page template?
0
 
glepizaAuthor Commented:
Hello Tom,

thank you very much for being willing to answer my wordpress question, I appreciate it.

I did what you suggested me to add the code directly into the template, that worked but when I was having issues on single post pages. So I ended up doing this:

if (in_array('term-stay',$classes) || (pa_in_taxonomy('directorytax', 'stay')&& (is_single()))) {
            ?>
          <div class='section-title'><span>GAMES</span></div>
      <?php
      }

So, first I was checking if the class term-stay was on the template, then I checked if the post belonged to a custom taxonomy following this tutorial :http://cazue.com/articles/wordpress-check-if-post-belongs-to-custom-taxonomy-2013
and also I checked if it was a single post.

I know this question was difficult because there were many things going on in here. But thank you for answered me because your last input led me to find the answer



Thanks!!!!

Winter
0
 
Tom BeckCommented:
You're welcome, glad I could be of some assistance. Thanks for the points.
0
 
glepizaAuthor Commented:
I found the answer. But Tom did helped me to think about what I was doing wrong. Thanks!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.