将特定位置的特定类别添加到使用wp_list_ages的菜单中

时间:2011-04-11 作者:dashaluna

我有一个显示页面的主菜单。所有页面都有相关联的子页面,但在菜单中,其中一些页面会自己显示,而没有子页面,而一些页面会显示为所有子页面的列表。菜单中的页面将根据为其指定的菜单顺序进行排序。(请参阅下面的代码)。

现在,我想在菜单中的特定位置添加一些类别,但不知道如何更好地进行添加。

是否可以使用wp\\U list\\U页面进行此操作?我喜欢我的代码的地方在于,每当为编程显示所有子页面的父页面添加子页面时,新添加的子页面将自动出现在网站的菜单中。与使用外观->菜单功能相反,用户需要在菜单中添加一个新创建的子页面,然后它才会出现在网站上。

我可能很容易把事情复杂化(!)唯一的方法是通过外观->菜单功能。我将非常感谢任何帮助和提示!

下面是我用来显示页面的代码,有些包含所有子页面,有些仅位于顶层。

//main nav: use wp_list_pages to display cirtain parent pages without any and with all child pages (a tree with parent)
$parents = array(5,7,17,61,19,25);
$children = array();
foreach($parents as $parent) {
  $child_pages = get_pages( "child_of=$parent" );
  if($child_pages){
    foreach($child_pages as $child_page){
      $children[] = $child_page->ID;
    }
  }
}
//add all the pages that need to be included without children
$parents = array_merge( (array)$parents, (array)array(31,23) );
//merge $parents and $children
$menu_pages = array_merge( (array)$parents, (array)$children );
$menu_pages_str = implode(",", $menu_pages); 
?> 

<ul class="menu wrap">
  <?php wp_list_pages( "sort_column=menu_order&title_li=&include=$menu_pages_str" ); ?>
</ul>

1 个回复
最合适的回答,由SO网友:Dave Hunt 整理而成

wp\\u list\\u页面的功能有限,如果不重写函数本身,很难将类别注入到混合中。

使用内置菜单功能可能是最好的方式,因为您至少可以设置单独的项目类,允许您为顶级类别创建菜单标题(使标题项目使用“header”类或类似类)。

您还可以只使用get\\u pages()函数,该函数将返回一个页面数组,而不只是将它们打印到页面上。这将允许您在遍历数组时向数据的显示添加逻辑。

结束

相关推荐

Pagination & get_pages?

我有一个页面,其中列出了此特定页面的子页面,但我想为其添加分页,如何才能做到这一点?这是获取页面的代码<ul id=\"products\" class=\"items-thumbs\"> <?php $the_id = get_the_ID(); $args = array( \'child_of\' => $the_id,