任何人都可以建议一种方法,我可以让我的课程=“选中”在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"
} ?>
答案 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。