web-dev-qa-db-ja.com

マルチレベルページ階層

これまでの私のWordPressサイトのほとんどは、1または2レベルのページ階層とともに、ブログコンテンツでした。

私は現在、顧客サイトマップを使用してサイトを開発しているところで、4レベルのページコンテンツの階層が必要であることを示唆しています。 WordPressに関しては、階層は簡単に作成できますが、このページ階層のテーマでナビゲーションを提供する方法を検討しています。

私が見たことの一つは、折り畳みページリストプラグインですが、件名で他に多くを見つけることができません。このような深いページ階層に対して、ナビゲーションをテーマ内で提供する方法を提案できる例や経験がある人がいるかどうか、私は思っていましたか?

編集 - 明確にするために、私は現在ナビゲーションタイプを選択していません、これは質問の一部です。 2レベルのページ階層では、通常、1レベルにトップナビゲーションを使用し、ドロップダウンに2レベルのナビゲーションを表示します。

これは、4レベルのナビゲーションに拡張するのは簡単ではありません(Windowsのスタートボタンタイプのメニューに似た複数のメニューを開く場合、またはこの記事の メニューの例を除いて )。

だから私はどのような代替アプローチが利用可能であるかを検討しています。トップバーのトップレベルナビゲーション、次に2番目のレベルのナビゲーション見出しを示すサイドバー。3番目と4番目のレベルまでドリルダウンすると拡張可能なサブセクションが表示されます。例えば。 折りページリストプラグインウェブページの右下にある 'in action'セクションを見てください

しかしながら、他の人々がWordPress内でページコンテンツの深い階層にナビゲーションを提供することにどのように取り組むかを試みて理解することを試みることを試みることを理解するために、これに対する他の良いアプローチ、したがって問題

1
Kris C

動的コンテンツではないメニュー

  1. メニュー構造が固定されている場合は、 "新しい" WPメニューシステムを使用して固定メニューを作成することができます(その上の4兆ウェブログの投稿)

動的コンテンツを含むメニュー

  1. メニュー構造が固定されていない場合は、次のことができます。

    a。ユーザーに手動でメニューを維持するように依頼します。新しいカテゴリを追加する

    b。メニューに入るすべてのものをフックしようとします。新しいカテゴリを作成してメニューに追加し、これらの手動操作をユーザーに防ぎます。

    c。別の "non-wp"メニューを選択し、各ページロード時に動的にそれを埋めます(明らかにキャッシュあり)。例:タグページを表すエントリの後ろにカウンタ(67)を配置する

オプション(c)の場合は、以下のようになります。 http://www.mycssmenu.com/ 好きなメニューのコードを生成します。それからそのメニューのjavascriptとcssをコピーしてあなたのテーマのheader.phpに貼り付けてください。 (私は誰がそのサイトを所有しているのか知りませんが、新しいメニューを作成するためのGUIシステムは絶対にとてもクールです)。

それから、コンテンツビット(本当に単純なもの:liの項目だけ)を以下のようなコードに置き換えます。階層ループ内のカテゴリ数を照会し、li項目を動的出力で置き換えます。

- >このようにして、動的コンテンツを含む動的メニューを作成し、それをメニューで好きなように実行するためのコードを使用することができます。

メニュージェネレータは、私の.cssと.javascriptと私のメニューのサンプルコンテンツを生成しました。例のコンテンツを関数 "taglinklineRounded"の呼び出しに置き換えました。

<li><a class="qmparent" href="javascript:void(0)">ARTS</a>
        <ul>
        <li><span class="qmtitle" >Listen</span></li>
        <?php echo taglinklineRounded('music',    'Music') ?>
        <?php echo taglinklineRounded('radio',    'Radio') ?>
        <li><span class="qmdivider qmdividerx" ></span></li>
        <li><span class="qmtitle" >Look</span></li>
        <?php echo taglinklineRounded('comics',   'Graphics') ?>
        <?php echo taglinklineRounded('photo',    'Photo') ?>
        <?php echo taglinklineRounded('graphics', 'Graphics') ?>
        <?php echo taglinklineRounded('art',      'Art') ?>
        <li><span class="qmdivider qmdividerx" ></span></li>
        <li><span class="qmtitle" >View</span></li>
        <?php echo taglinklineRounded('tv',       'TV') ?>
        <?php echo taglinklineRounded('video',    'Video') ?>
        <?php echo taglinklineRounded('movie',    'Movie') ?>
        <li><span class="qmdivider qmdividerx" ></span></li>
        <li><span class="qmtitle" >Read</span></li>
        <?php echo taglinklineRounded('book',     'Book') ?>
        <?php echo taglinklineRounded('writing',  'Writing') ?>
        <?php echo taglinklineRounded('news',     'News') ?>
        <li><span class="qmdivider qmdividerx" ></span></li>
        <li><span class="qmtitle" >Specific</span></li>
        <?php echo taglinklineRounded('scifi',    'Sci-Fi') ?>
        <?php echo taglinklineRounded('lost',     'LOST') ?>
        </ul></li>

TaglinklineRounded関数は私にこのタグを持っているエントリの数を与えます(しかし明らかにどんなコードでもメニュー構造にすることができます)。

より動的な方法では、メニューにカテゴリ/その他のコンテンツを含める必要があるものは何でも読んで、ハードコードされた 'scifi'の代わりに...そのカテゴリの出力のエコーステートメントで置き換えます。

(もちろん、あなたが選んだスタイルで表現したいだけの深さもあります)。

その他のアイデア

新しい動的メニューの出力を組み合わせることで、メニュー内の特定の部分をユーザーが管理し、他の部分を動的に管理することで、標準のwpメニューと動的メニューを組み合わせることもできると思います。それで遊んでいません。

2
edelwater

パンくずタイプのナビゲーションが欲しいということですか。または現在のページの子であるすべてのページを一覧表示します。正確にはどういう意味ですか?私はこのようなことをたくさんやりました、それで私はおそらくこれのためにどこかにコードの塊を持っているでしょう。

0
PaulAdamDavis