WordPress динамическое меню дерева страниц в боковой панели - PullRequest
1 голос
/ 20 сентября 2011

Я пытаюсь сгенерировать список подменю дерева страниц на основе текущего активного уровня верхней страницы. Дерево страницы Comlete выглядит следующим образом:

1.0.0 элемент верхней страницы

  • 1.1.0 дочерняя страница
    • 1.1.1 Элемент страницы внука
    • 1.1.2 элемент страницы внука
  • 1.2.0 дочерняя страница
    • 1.2.1 Элемент страницы внука
    • 1.2.2 Элемент страницы внука
  • 1.3.0 дочерняя страница
    • 1.3.1 Элемент страницы внука
    • 1.3.2 элемент страницы внука

2.0.0 элемент верхней страницы

3.0.0 элемент верхней страницы

(элементы второй и третьей верхней страницы имеют похожую иерархию)

Мне нужно дерево страниц в моем sidebar.php со следующим поведением:

  • Только текущая активная верхняя страница со всеми дочерними и всеми их внуки расширились при навигации по этой главной странице филиал
  • Текущий элемент страницы и текущий родитель выделены.
  • Другие элементы верхней страницы скрыты

Если коротко, это означает, что все меню боковой панели изменяется при перемещении между верхними страницами, но остается неизменным в пределах ветви / навигации каждой верхней страницы вниз до одной страницы.

Кроме того, мне нравится отображать элементы страницы по порядку меню.

У кого-нибудь есть фрагмент кода или мысли о том, как этого добиться?

1 Ответ

0 голосов
/ 21 сентября 2011

Ах, мне удалось решить это.Изначально я не мог понять, куда ушел текущий класс элементов страницы.Он работал на уровне одной страницы, но не на уровне родителей или предков.Мне нужно было вставить следующее прямо перед включением боковой панели в шаблон: <?php wp_reset_query(); ?> Это вывело эту ошибку.

Во-вторых, я решил скрыть все элементы страницы с помощью css display: none;и отображать только элементы страницы с классом current_page_item, current_page_parent и current_page_ancestor с display: block;.

Последний, но не менее важный, вот код для получения списка страниц, расположенного на моей боковой панели: <?php wp_list_pages('sort_column=menu_order'); ?>

Вот и все!

Прекрасно работает!

Однако я не гуру php, поэтому, если кто-нибудь сможет подарить мне более изящный подход, у меня все уши!

...