如何突出显示父列表项而不突出显示子列表项?

问题描述:

我在使用Wordpress生成的链接列表中遇到问题,它显示特定的页面链接以及它的所有子页面链接。当您将鼠标悬停在它们上方时,我试图让链接突出显示,然后当您点击它们并导航到该页面时,该页面的链接将保持突出显示。我找到了一种方法来主要实现这个使用:如何突出显示父列表项而不突出显示子列表项?

#sidebar a:hover{ 
    padding: 7px; 
    background-color: #f7f9fe; 
    color: #728186; 
} 
#sidebar ul > li .current_page_item{ 
    padding: 7px; 
    background-color: #f7f9fe; 
    color: #728186; 
} 

但这不允许我突出显示父页/李。如果我使用:

#sidebar li.current_page_item 

孩子撑突出了它的网页上,但父页面上也凸现子项目,不只是本身。

这里是我的解析PHP:

<ul id="sidebar" class="sidelist"> 
    <li class="pagenav"><h5>WHAT WE DO</h5> 
     <ul> 
      <li class="page_item page-item-39 current_page_item"><a href="http://www.autismrecoveryfoundation.org/meet-the-board" title="Meet the Board">Meet the Board</a> 
      <ul class='children'> 
       <li class="page_item page-item-84"><a href="http://www.autismrecoveryfoundation.org/meet-the-board/being-a-board-member-101" title="Being A Board Member 101">Being A Board Member 101</a></li> 
      </ul> 
      </li> 
     </ul> 
    </li> 
</ul> 

这里是我约WP列表页面WordPress的页面(http://codex.wordpress.org/Function_Reference/wp_list_pages)使用的模板标签:

<?php 
      // use wp_list_pages to display parent and all child pages all generations (a tree with parent) 
      $parent = 39; 
      $args=array(
      'title_li' => '', 
      'child_of' => $parent 
      ); 
      $pages = get_pages($args); 
      if ($pages) { 
       $pageids = array(); 
       foreach ($pages as $page) { 
       $pageids[]= $page->ID; 
       } 

       $args=array(
       'title_li' => '<h5>WHAT WE DO</h5>', 
       'include' => $parent . ',' . implode(",", $pageids) 
      ); 
       wp_list_pages($args); 
      } 
     ?> 

更新

要显示的网页列表在一个平面列表中,设置depth为-1:

$args=array(
    'depth' => -1, 
    'title_li' => '<h5>WHAT WE DO</h5>', 
    'include' => $parent . ',' . implode(",", $pageids) 
); 

这样你就不必跟孩子选择勾搭,你的子页面将不会被包含在你的主页的li了。


老答案

问题就出在这个选择:

#sidebar ul > li .current_page_item 

#sidebar ul部分寻找ul#sidebar下降,但在你的代码ul#sidebar。此外,li .current_page_item会发现任何.current_page_item里面的li包含您的标题。

您选择改成这样:

#sidebar > li > ul > .current_page_item 

你也可以利用这一点,因为你的专页小工具都有其自己的类反正:

.pagenav > ul > .current_page_item 
+0

感谢您的帮助!所以我尝试了你的两条建议,以及你编辑帖子之前的两条建议,但他们都没有这样做。我尝试过使用#sidebar> li> ul> .current_page_item,并且它在父页面上保持父级和子级突出显示,然后在子页面上时,两者都不突出显示。你介意看看这个页面吗? http://www.autismrecoveryfoundation.org/meet-the-board – Amanda 2011-01-23 14:02:35