CSS-спрайты и PHP с использованием динамического выделения меню, не работающего с функцией цикла

На этом сайте: http://jumpthru.net/newsite/vision/

Я использую CSS спрайты для моей навигации с инструкциями 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://img.ruphp.com/php/vision2.png) 0px -106px !important; 

}

 #sidebarnav ul#sidenav li.<?php echo $current2; ?> { background:url(http://img.ruphp.com/php/team2.png) 0px -106px !important; 

}

 #sidebarnav ul#sidenav li.<?php echo $current3; ?> { background:url(http://img.ruphp.com/php/content2.png) 0px -106px !important; 

}

 #sidebarnav ul#sidenav li.<?php echo $current4; ?> { background:url(http://img.ruphp.com/php/org2.png) 0px -106px !important; 

}

Любая помощь будет принята с благодарностью!

У меня есть решение, которое немного отличается от того, что вы ищете, но гораздо лучше подходит к тому, что вы делаете.

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, я определенно рекомендую вам ознакомиться с этой статьей .