谁能建议一种方法,我可以让我的class="选定"工作在我的Wordpress导航?
我有一个wordpress导航设置:如果我在主页上,我的主页类被选中。
如果我想转到第一页,我希望这个类在导航栏中改变,只加载这个类而不加载主页。
我使用: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"
} ?>
据我所知,您使用的是硬编码导航,而不是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中的条件标签。
如果你看第一个<li>
你会看到<?php echo is_home()? ' class="selected"'; '';?>
这个代码被表示为一个三元运算符相当于
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()
-如果您在主页
is_page($arg)
-如果您在$arg
指定的页面上,则返回true。
is_single($arg)
-如果您在$arg
指定的post上,则返回true。
您可以选择使用其他条件标记