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

На этом сайте: 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://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;

}

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

1 Ответ

2 голосов
/ 12 июня 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...