0

我正在尝试解决一个我一直在苦苦挣扎的问题。

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

我想出的是:

<?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>';
?>

第一层children很好,因为它被"ul id="accordion">.../ul>"包裹着。但现在我想将孩子的孩子也包装在第二个 ul-list 中。所以结构会是这样的:

<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>
...

我怎样才能使这项工作?如何<ul>...</ul>在这样的 foreach 循环中添加 -wrap ?

4

1 回答 1

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上的许多示例

于 2013-05-29T00:37:58.550 回答