web-dev-qa-db-ja.com

親ページにいる間にサブページを表示しますか?

2レベルのページを表示するナビゲーションメニューを作成したいと思います。

それを説明すると:

  • 親1
  • 親2
  • 親3(現在)
    • こども1
    • こども2
    • こども3
  • 親4

そのため、ナビゲーションコンテナにすべての親ページを表示したいが、現在ユーザーがその親ページにいる場合は子ページのみを表示したい。

1
jmysona

WordPressは親ページにCSSクラスを設定するので、これは非常に簡単です。デフォルトでメニューからすべてのサブリスト(ul)を隠します。

.menu ul {
    display: none;
}

その後、親ページが選択されたときに、WordPressによって設定されたCSSクラスを使用してサブリストを再度表示します。

.menu .current_page_ancestor, .menu .current_page_parent {
    display: block;
}

だからあなたが必要とするのはあなたのテンプレートにこれだけです

テンプレート:

<ul class="menu">
    <?php wp_list_pages('title_li=') ?>
</ul>

これはあなたのcssファイルにあります。

CSS:

.menu ul {
    display: none;
}

.menu .current_page_ancestor > ul, .menu .current_page_parent > ul {
    display: block;
}
1
Horttcore