Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

how should I use wordpress conditionals ?

Posted on 2014-01-22
9
Medium Priority
?
342 Views
Last Modified: 2014-01-28
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
0
Comment
Question by:glepiza
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 3
9 Comments
 
LVL 38

Assisted Solution

by:Tom Beck
Tom Beck earned 900 total points
ID: 39801875
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
 

Accepted Solution

by:
glepiza earned 0 total points
ID: 39801902
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
 

Author Comment

by:glepiza
ID: 39801925
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
Learn how to optimize MySQL for your business need

With the increasing importance of apps & networks in both business & personal interconnections, perfor. has become one of the key metrics of successful communication. This ebook is a hands-on business-case-driven guide to understanding MySQL query parameter tuning & database perf

 

Author Comment

by:glepiza
ID: 39801926
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
 

Author Comment

by:glepiza
ID: 39801942
hmm, never mind, i need to display that word game in other templates as well. So am back to the beginning.
0
 
LVL 38

Assisted Solution

by:Tom Beck
Tom Beck earned 900 total points
ID: 39801948
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
 

Author Comment

by:glepiza
ID: 39805453
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
 
LVL 38

Expert Comment

by:Tom Beck
ID: 39805468
You're welcome, glad I could be of some assistance. Thanks for the points.
0
 

Author Closing Comment

by:glepiza
ID: 39814576
I found the answer. But Tom did helped me to think about what I was doing wrong. Thanks!
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

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

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

3 proven steps to speed up Magento powered sites. The article focus is on optimizing time to first byte (TTFB), full page caching and configuring server for optimal performance.
Originally, this post was published on Monitis Blog, you can check it here . In business circles, we sometimes hear that today is the “age of the customer.” And so it is. Thanks to the enormous advances over the past few years in consumer techno…
The purpose of this video is to demonstrate how to Import and export files in WordPress. This will be demonstrated using a Windows 8 PC. Go to your WordPress login page. This will look like the following: mywebsite.com/wp-login.php : Click on Too…
The purpose of this video is to demonstrate how to set up the permalinks on a WordPress Website. This will be demonstrated using a Windows 8 PC. Go to your WordPress login page. This will look like the following: mywebsite.com/wp-login.php : Go t…

688 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question