Вложенный список в цикле 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>
...
Как я могу сделать эту работу? Как я могу добавить
- ...
Спасибо за вашу помощь!
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