任何人都可以建议一种方法,我可以让我的类=“选中”在我的Wordpress导航工作?

时间:2013-03-09 09:01:50

标签: php wordpress if-statement navigation

任何人都可以建议一种方法,我可以让我的课程=“选中”在Wordpress导航中工作吗?

我有一个wordpress导航设置:

如果我在主页上,则会选择我的主页类。

如果我想转到第一页,我希望这个类在thenavigation中更改,所以只有这个类加载而不是主页。

我使用:class =“selected”来激活我的翻转效果。

我可以在固定网站上工作,只是不在wordpress上,这里有任何建议吗?

<div class="nav">
  <ul>
  <li class="selected"><a href="#" title="Home">Home</a></li>
  <li><a href="#">One</a></li>
  <li><a href="#">Two</a></li>
  <li><a href="#">Three</a></li>
  <li><a href="#">Four</a></li>
  <li><a href="#">Five</a></li>
  <li><a href="#">Six</a></li>
  </ul>
</div>

我可以在这里使用if语句吗?

   <?php if(is_home() ) {

    //for example load class="selected"

    } else {

    //for example if other page don't load class="selected"

   } ?>

1 个答案:

答案 0 :(得分:1)

根据我的理解,您使用的是硬编码导航,而不是来自WordPress的wp_nav_menu()

因此,您可以有条件地检查您正在使用的每个页面:

<div class="nav">
  <ul>
  <li<?php echo is_home()? '  class="selected"'; '';?>>
    <a href="#" title="Home">Home</a>
  </li>
  <li<?php echo is_page('Contact')? '  class="selected"'; '';?>>
    <a href="#">Contact page</a>
  </li>
  <li<?php echo is_single('My first Post')? ' class="selected"'; '';?>>
    <a href="#">Myfirst post</a>
  </li>
  </ul>
</div>

您应该使用WordPress中的Conditional Tags

如果您查看第一个<li>,您会看到<?php echo is_home()? ' class="selected"'; '';?>此代码表示为ternary operator,相当于

if( is_home() ){
  echo ' class="selected"'; #echo class. white space in front so that it does not stick to the "<li"
else{
  echo ''; #do nothing
}

在上面的例子中,我使用了三个函数:

is_home() - 如果您在主页上,则返回true

is_page($arg) - 如果您位于$arg指定的网页上,则返回true。

is_single($arg) - 如果您在$arg指定的帖子上,则返回true。

您可以选择使用其他conditional tags