WordPress的foreach循环中的嵌套列表

时间:2013-05-28 23:58:10

标签: html wordpress loops foreach nested

我正试图解决一个问题,我已经在很长一段时间内完成了这个问题。

我想在一个WordPress页面的所有主页上创建一个UL LI列表。这些主页有孩子,也可能有孩子也可能没有孩子。

我想出的是:

<?php
$children = get_pages('child_of='.$post->ID);
$count = 0;
echo '<ul id="accordion">';
foreach($children as $child) {
    if($child->post_parent==$post->ID) {
    echo '<li class="first-level">'.$child->post_title.'</li>';
    } else {
    echo '<li class="second-level">'.$child->post_title.'</li>';
    }
}
echo '</ul>';
?>

第一级孩子很好,因为它被“ul id =”accordion“&gt; ... / ul&gt;”包裹。但现在我想把孩子们的孩子包裹在第二个ul列表中。所以结构将是这样的:

<ul>
<li>- Page 1
  <ul><li>- Subpage 1 of Page 1</li>
      <li>- Subpage 2 of Page 1</li>
  </ul>
</li>
<li>Page 2</li>
...

我该如何使这项工作?如何在这样的foreach循环中添加<ul>...</ul> - 换行?

1 个答案:

答案 0 :(得分:2)

无需重新发明轮子,wp_list_pages生成嵌套列表:

<ul id="accordion">
<?php wp_list_pages( 'title_li=&child_of=' . $post->ID ); ?>
</ul>

查看http://codex.wordpress.org/Function_Reference/wp_list_pages

上的许多示例