Меню страницы списка с детьми и внуками в 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 (в функции 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 } ?>

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

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


person Hultner    schedule 01.12.2010    source источник


Ответы (1)


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

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

person TheDeadMedic    schedule 03.12.2010