在这个网站上: http://jumpthru.net/newsite/vision/
我使用CSS sprites进行导航,使用PHP else语句来显示当前页面的活动状态。除了包含循环/博客帖子的页面(http://jumpthru.net/newsite/commentary/)
之外,所有页面都正常工作我是否需要以不同的方式为此页面调用php?
PHP:
<?php
if ( is_page('vision') ) { $current1 = 'visionside a'; }
elseif ( is_page('team') ) { $current2 = 'teamside a'; }
elseif ( is_page('commentary') ) { $current3 = 'blogside a'; }
elseif ( is_page('organizations') ) { $current4 = 'orgside a'; }
?>
CSS:
#sidebarnav ul#sidenav li.<?php echo $current1; ?> {
background:url(http://jumpthru.net/newsite/wp-content/themes/twentyten/images/side/vision2.png) 0px -106px !important;
}
#sidebarnav ul#sidenav li.<?php echo $current2; ?> {
background:url(http://jumpthru.net/newsite/wp-content/themes/twentyten/images/side/team2.png) 0px -106px !important;
}
#sidebarnav ul#sidenav li.<?php echo $current3; ?> {
background:url(http://jumpthru.net/newsite/wp-content/themes/twentyten/images/side/content2.png) 0px -106px !important;
}
#sidebarnav ul#sidenav li.<?php echo $current4; ?> {
background:url(http://jumpthru.net/newsite/wp-content/themes/twentyten/images/side/org2.png) 0px -106px !important;
}
非常感谢任何帮助!
答案 0 :(得分:2)
我的解决方案与您所寻求的解决方案略有不同,但对您正在做的事情来说是一个更好的解决方案。
PHP:
<?php
if ( is_page('vision') )
$page = 'vision';
elseif ( is_page('team') )
$page = 'team';
elseif ( is_page('commentary') )
$page = 'blog';
elseif ( is_page('organizations') )
$page = 'org';
?>
<body id="page-<?php echo $page; ?>">
...
关于以上PHP的注意事项:如果您有get_page_id()
函数,则可以进一步简化此操作。只需拥有<body id="page-<?php get_page_id(); ?>">
HTML:
<ul id="sidenav">
<li class="visionside"><a href="#">...</a></li>
<li class="teamside"><a href="#">...</a></li>
<li class="blogside"><a href="#">...</a></li>
<li class="orgside"><a href="#">...</a></li>
</ul>
CSS:
body#page-vision #sidenav li.visionside a,
#sidenav li.visionside a:hover {
...
}
关于CSS的注意事项:上面列出的两行可以一起设置样式 - 当前状态和悬停状态。当您将鼠标悬停在导航栏上时,这将使当前状态显示,无论哪个导航是“当前”导航。
看到您对使用CSS Sprites感兴趣,我绝对建议您阅读this article。