Вложенный список в цикле foreach для Wordpress

Я пытаюсь решить проблему, с которой я долго боролся. Мои навыки PHP не самые лучшие, поэтому я застрял в этой проблеме:

Я хочу создать список 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>';
?>

Первый уровень потомков в порядке, потому что он заключен в "ul id="accordion">.../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, как это?

Спасибо за вашу помощь!

1 ответ

Решение

Не нужно изобретать велосипед, 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

Другие вопросы по тегам