web-dev-qa-db-ja.com

大規模サイト用の複雑なマルチレベルアーキテクチャ/メニューの処理

ワードプレスを使って情報アーキテクチャ/コンテンツ管理の問題を解決するためのフィードバックやアイデアを得ようとしています。

私は大きなサイト(1,000以上のページ、何百もの投稿)をセクションで構成しています。各セクションには、ページとカスタムリンクの両方を含む独自のセカンダリナビゲーションメニューが必要です。これは簡単に実行できますが、必ずしも管理が容易ではありません(プログラマー以外の場合)。

この構造を想像してみてください。

親1

  • ページ1a
  • 1bページ
  • 1cページ
  • カスタムリンク1d

親2

  • ページ2a
  • ページ2b
  • 親3
    • 3aページ
    • 3bページ
    • カスタムリンク3c
  • 2dページ
  • カスタムリンク2e

これが私が考え出した(そして問題を指摘した)解決策です:

  1. 通常のWP 3+ナビゲーションシステムを使用してメニューを作成します。 (カスタムメタタグ/ taxonomy/slug/otherを介して)各親ページをメニューに関連付け、次に各ページで親を取得し(それ自体に子がない場合)、正しいメニューを表示します。

    • 問題はありますか?たっぷり!これは大規模なサイトなので、多くのメニューが含まれているため、保守作業が混乱します。
    • ページを追加するのは面倒です - ページを追加し、正しい親ページを宣言し、そして正しいメニューにページを再度追加します(プログラム的にこの最後の部分をsave_pageフックにアタッチすることで単純化できます)。
    • ユーザーがページを追加し、メニューが関連付けられていない親ページを宣言した場合はどうなりますか?
    • 親ページを追跡する - メニューの関連付けは面倒で直感的ではありません。
  2. マルチサイトを使用する - 各サイトには、その中に含まれるすべてのページに表示される独自のメニューが表示されます。
    • マルチサイトに関する多くの問題(プラグイン、サーバーリソースなど)
    • これは実際には1つの大規模サイトであり、異なる相互接続サイトのネットワークではありません。
  3. WP 3+ナビゲーションシステムを使用せずに、代わりにすべてのメニュー項目のページ(カスタムリンクを含む)を作成し、プラグイン/転送/リダイレクトを使用して特定のダミーページをカスタムリンクに変更します。 wp_list_pagesを使用して、ページの親の関係に基づいてプログラム的にメニューを作成する
    • 実際のページはすでにたくさんありますが、ページリストにfluff(リダイレクトするページ)を追加することはおそらくお勧めできません。
    • 各カスタム投稿タイプのメニューとともに、サイトの各セクションにカスタム投稿タイプを使用する
    • 上に示した入れ子をどのように複製しますか(親3は親2に入れ子になっています)?
    • 上記の#1と同じ問題の多く

私は問題の説明と可能な解決策が明確であることを願っています - そうでない場合は、遠慮なく質問してください。そうでなければ、これを達成する方法についてのフィードバックやアイデアは大歓迎です。

2
skim-

私はネイティブのWordPressカスタムメニューを使用することを主な目的としています。これは、管理者がコンテンツを簡単に編集できるようにするためです。私があなたが提案する他の解決策がクライアントが使用するのに十分柔軟であるとは思わない。この場合、複雑さを完全に回避することは不可能だと思います。クライアントの教育に集中することをお勧めします。ところで、WordPressのカスタムメニューは実際のサイトの構造を再現していないため、クライアントはメニューにアイテムを追加するときにこれを再現する必要があります。

1
markcbain

メインメニューからドキュメント内の単一のセクションにリンクしません。各文書へのリンクを提供し、複数のセクションがあるページに個別のサブメニューを表示することもできます。

メニューにカスタムリンクを含めるには、WP関数(wp_list_pagesと友達)を使ってメニューを作成できるように、ページまたはその他の投稿タイプのドキュメントを作成します。あなたが何百ものページを持っているなら、あなたは本当に手動でメニューを管理しません。だからあなたの質問に明確な答えを与えるために:私はあなたの3番目の解決策を取ります。

生成されたメニュー内の単一ページの可視性を管理したり、メニューの順序や入れ子を設定したりするためのプラグインも用意されています。ああ、それを見つけました。私は pageMash を使用していました。これは現在WPプラグインサイトに免責事項がありますが、まだ実行中です。私のインストールのいくつかは3.1と3.4の間のバージョンです。

1
feeela