Список страниц меню с детьми и внуками в WordPress

Итак, прошло уже больше года с тех пор, как я создал тему WordPress, и теперь я начал снова, но у меня возникла проблема с моим меню на страницах.

Это моя текущая иерархия страниц (я все еще проверяю, следовательно, имена)

Home

This page
 *Child 1
  **Grandchild 1
  **Grandchild 2
 *Child 2
  **Grandchild 3
  **Grandchild 4
  **Grandchild 5
 *Child 3
  **Grandchild 6

Another page

Теперь, когда я захожу на "Эту страницу", я хочу показать ссылку на "Эту страницу" (текущую) и всех прямых потомков (здесь нет внуков) "Этой страницы", как на этом скриншоте: http://img840.imageshack.us/img840/3006/thispage.png

Теперь, когда я захожу на "Дитя 1" на "Этой странице", я хочу показать все из меню, указанного выше, и всех детей "Дитя 1" (внуков 1 и 2) в подпункте "Дитя 1", как на этом рисунке: http://img4.imageshack.us/img4/7868/child1.png

И теперь, когда я посещаю "Внука 1", я хочу показать то же самое меню, что и для "Ребенка 1", только с "Внуком 1" в качестве текущего элемента, как в этом наброске: http://img819.imageshack.us/img819/1633/grandchild1.png

Это мой текущий код, основанный на примере из WordPress Codex (под функцией wp_list_pages()) для меню немного другого типа, но он не очень хорошо работает и совершенно не очень подходит для крестных детей.

<?php
if($post->post_parent){
 $children = wp_list_pages("title_li=&include=".$post->post_parent."&echo=0");
 $children .= wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
}
else{
 $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
}  

if ($children) { ?>
 <div class="page-menu">
 <ul>
 <?php echo $children; ?>
 </ul>
 </div>
<?php } ?>

Мой план состоит в том, чтобы на моей странице было меню в виде боковой панели, как вы можете видеть на эскизах.

Так кто-нибудь знает, как можно достичь этого результата?

1 ответ

Я настоятельно рекомендую просто использовать wp_list_pages()и затем добавьте CSS, чтобы скрыть части, которые вы не хотите видеть (есть множество классов, выведенных функцией, проверьте ваш источник, чтобы увидеть, что доступно).

Кроме того, вы также значительно упростите поисковым системам (и пользователям, если они используют ограниченный браузер или улучшение доступности) просмотр вашего сайта, поскольку вся иерархия всегда присутствует в HTML.

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