回答:
メニューの簡素化はあなたが望むもののように聞こえます。
Simple_menuモジュールはTwigExtensionを使用して、Drupalのメインメニュー(またはそのほかの任意のメニュー)にアクセスし、配列をレンダリングして、twigテンプレートからアクセスできるようにします。小枝テンプレートでメニューのレンダー配列を完全に制御できる多くの利点の1つは、メニューのマークアップをカスタマイズして、メニューにアクセスして標準に準拠できるようにすることです。
// Get menu items
{% set items = simplify_menu('main') %}
// Iterate menu tree
<ul>
{% for menu_item in items.menu_tree %}
<li class="{{ item_class }} navigation__item">
<a href="{{ menu_item.url }}" class="{{ link_class }}">{{ menu_item.text }}</a>
</li>
{% endfor %}
</ul>
それ以外の場合はmenu-*
、ブロックからメニューをレンダリングするときに使用する小枝テンプレートがいくつかあります。DrupalでTwigデバッグ設定をオンにして、提案を確認します。
ただし、それを正確に理解するには、メニューのテーマについてかなりの知識が必要です(上記の例のようにフラットなメニュー構造ではなく、子アイテムを処理するなど)。つまり、ブロックでメニューを特定の地域。次に、menu.html.twig
ベーステーマ(上品または安定)から検査して、マークアップを変更する場合のオプションを確認します。
menu.html.twig
Drupalによってレンダリングされるすべてのメニューに影響するので、それだけでなく、適切なtwigテンプレートの提案を使用してください...これがデフォルトのテンプレートです。
メニューブロックをインストールすることをお勧めします。これにより、テーマ設定と小枝ファイルの提案に柔軟性が追加されます。また、メニューのツリー(サイドバーのセクションベースのナビゲーションなど)を簡単にレンダリングできます。
{% set items = simplify_menu('main') %}
たheader.twigファイルに(この場合)メインナビゲーションメニューが表示されませんか?
header.twig
が試しました{{ simplify_menu('crmnavigation') }}
が、ブロックをロードしていませんか?header.twig
Simplify Menuを使用して、ブロックとその中のメニューをどのようにロードするか知っていますか?
optimize_menuモジュールを有効にしてから、メニューをレンダリングするpage.html.twigまたはその他のtwigテンプレートに以下のコードを追加します。
<nav class="navigation__main" role="navigation">
{% set item_class = 'navigation__item' %}
{% set link_class = 'navigation__link' %}
<ul class="navigation__items">
{% set items = simplify_menu('main') %}
{% for menu_item in items.menu_tree %}
<li class="{{ item_class }}"><a href="{{ menu_item.url }}" class="{{ link_class }}">{{ menu_item.text }}</a></li>
{% endfor %}
</ul>
</nav>
これ'main'
は、メニューページのメニューの編集ボタンにカーソルを合わせ、ブラウザの下部に表示されるURLを確認することで確認できるメニューIDです。
まだ別のアプローチを探している人のために、私はTwig Tweakモジュールをより安定した、よりグローバルなユースケースとして使用することをお勧めします。チートシートをチェックしてください
twig tweakを使用してメニューをレンダリングするには、次の操作を実行できます。
{# Expand menu items to display the entire menu tree. #}
{{ drupal_menu('menu_machine_name') }}
{# Specify menu level and depth. #}
{{ drupal_menu('admin', 2, 3) }}