クリックできないメニュー項目


21

Drupal 8サイトで、「リンクなし」のメニュー項目を追加したいのですが、nolinkは許可されていると思っていましたが、これを入力するとエラーが発生しました

手動で入力したパスは、/ 、? または#。

「#」は属性[data-drupal-link-system-path = ""]および[class = "is-active"]を追加するため、「#」を追加せずにクリックできないメニュー項目を追加する方法はありますか

回答:


44

route:<nolink>これを実現するために使用する必要があります。次に、リンクなしで検証およびレンダリングします。


そんなにおかげで、私はそれを試してみましたが、それが正常に動作しますが、まだ[データ-drupalのリンク系のパス=「<フロント>」]の属性を追加し、[クラスは=「アクティブである」]
モハメド・オサマGbril

1
それはあなたが達成しようとしているものとは別の問題であり、テーマのコアバグまたは問題route:<nolink>ですが、間違いなく答えです。Pathautoでも動作します。
ケビン

「アクティブな」クラスのバグは次の場所で
FiNeX

それは私のために働いた。このような知識豊富なソリューションをありがとう。
生徒

2

カスタムモジュールでリンクなしのメニュー項目を作成するには、[module_name] .links.menu.ymlに追加します。

url: 'internal:##'

url: 'internal:#nolink'href属性が空にならないように、2番目の#文字(またはその他の文字や単語)を追加する必要があります。これにより、ユーザーがリンクをクリックするとページがリロードされます。


これも良い解決策です。リンクを削除するよりも、私にとっては<a>タグを削除すると、このメニュー項目は対応するCSSスタイルを失います。
ジュアンミ


0

Drupal 8の場合、次のようにリンクできないLink :: fromTextAndUrlを使用してプログラムでリンクを作成できます。

$my_link = Link::fromTextAndUrl(t('This is my link text'), Url::fromUri('route:<nolink>'));

オプションで、次を使用して配列に変換できます。 $my_link = $my_link->toRenderable();

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.