メニュー項目のすべての第3レベルのサブメニューを、それぞれが独自の表示ブロックに表示しようとしています。メニューブロックモジュールを試しましたが、アクティブなトレイルでしか機能しないようです。つまり、3レベルのメニューだけを個別のユニットとして表示するのではなく、2レベルと3レベルのすべてのメニューを1つのユニットとしてしか表示できません。
メニューブロックモジュールに加えて、このコードで直接メニューツリーにアクセスしてみました。
$main = menu_navigation_links('main-menu', '2');
echo theme('links__system_main_menu', array(
'links' => $main,
'attributes' => array(
'id' => 'main-menu',
'class' => array('links')
),
));
?>
メニュー構造は次のとおりです。
- Parent Menu 1
- Parent Menu 2
- Child Menu A
- SubChild Menu 1A
- SubChild Menu 2A
- SubChild Menu 3A
- Child Menu B
- SubChild Menu 1B
- SubChild Menu 2B
- SubChild Menu 3B
親メニュー2を選択したときに表示する内容:
ブロック1:SubChildメニュー1A |サブチャイルドメニュー2A |サブチャイルドメニュー3A
ブロック2:サブチャイルドメニュー1B |サブチャイルドメニュー2B |サブチャイルドメニュー3B
ツリーとは別のサブメニューを表示する正しい方法についてのヘルプは、大歓迎です。
私はそれを行うための最善の方法は、単に Menu block モジュールを使用することだと思います。これについての引用は次のとおりです(モジュールのプロジェクトページから):
...テーマでメインメニューリンク機能とセカンダリメニューリンク機能を使用したことがありますか。
それが、このモジュールが行うことです。これは、任意のメニューの任意のレベルで始まるメニューツリーの構成可能なブロックを提供します。もっと!
したがって、テーマのメインメニューリンク機能のみを使用している場合は、「メインメニュー(レベル2+)」ブロックを追加して構成できます。このブロックは、メインメニューのいずれかのページに移動すると表示され、メインメニューの第2レベル(およびより深い)のメニューツリーを表示し、ツリーを下に移動すると展開します。メニューのツリーの深さを制限したり(「メインメニュー(レベル2〜3)」など)、および/またはすべての子サブメニューを展開したりすることもできます(たとえば、「メインメニュー(レベル2以上の展開)」)。
次のモジュールを使用できます: https://www.drupal.org/project/yamb 第2レベルのタイトルを持つ第3レベルのサブメニューを取得する。