web-dev-qa-db-ja.com

カスタムメニューウォーカーでリンクレベルを分ける方法

カスタムメニューウォーカーを作成しようとしていますが、トップレベルのメニュー項目用のULと下位レベルのすべてのメニュー項目用の個別のULを作成する方法がわかりません。

基本的に私は出力しようとしています:

<ul class="first-level-links">
    <li class="first-level-link" id="A">
            <a href="#">first level link A</a>
    </li>
    <li class="first-level-link" id="B">
            <a href="#">first level link B</a>
    </li>
</ul>

<ul class="second-level-links-for-A">
    <li class="second-level-link">
        <p>second level link A.1</p>
        <ul class="third-level-links">
            <li class="third-level-link">third level link A.1.a</li>
        </ul>
    </li>
    <li class="second-level-link">
        <a href="#">second level link A.2</a>
    </li>
</ul>

http://christopheryanceyis.me/test.php

ワードプレスウォーカーでこれを行うことができますか?もしそうなら、どうですか?

1

私はこの問題に対する多くの潜在的な解決策に遭遇しました、私が遭遇した一つの解決策はあなたが示唆したようにWalkerを使うことです。

しかし、私の経験では、すべての解決策が何らかのシナリオで失敗しました。私が試したさまざまな解決策で私が見た共通の失敗:

  • ブログの投稿をクリックすると、二次/下位メニューが消える
  • 分割メニューを表示する各ページに親メニュー項目を指定するように強制されている
  • メニューマネージャの階層ではなく、ページ階層に依存するソリューション

多くのクライアントWebサイトでこの問題に対処した後、私はついにWordpressのための適切な分割メニュー/二次メニュープラグインを構築する時間を取っておきました。私のプラグインは私が他の解決策で見つけたどんな欠点も示さない。

これを使用するには、ウィジェットを実装する(イージーモード)か、通常はwp_nav_menu(開発者モード)を使用する場所でテンプレートの関数を使用します。

あなたはここでそれをチェックアウトすることができます: https://mattkeys.me/products/wp-nav-plus/

1
Matt Keys