Drupal 8 with Bootstrap themeを使用していて、サブテーマとさまざまなメニューを作成しました。
メニューを編集しようとしましたtwigテンプレートですが、Twigにはあまり慣れていません。
リンクが新しいタブで開くメニューを追加するにはどうすればよいですか?
私の場合、これを実現するために hook_link_alter() を利用しました。状況:メニューリンクで、お問い合わせして新しいタブで開くだけです。
<?php
function MYMODULE_link_alter(&$variables) {
if (!$variables['url']->isRouted()) {
$uri = $variables['url']->getUri();
// Only want the Contact Us to open in new tab.
if ($uri == 'base:contact-us') {
$variables['options']['attributes'] = ['target' => '_blank'];
}
}
}
これはすべての外部リンクに対して正常に機能します。
function MYMODULE_link_alter(&$variables) {
if ($variables['url']->isExternal()) {
$variables['options']['attributes'] = ['target' => '_blank'];
}
}
メニューターゲット D8の開発バージョンのモジュールですが、確認できます。
特権ユーザーがメニュー項目を新しいウィンドウで開くかどうかを選択できるようにします。有効にすると、メニュー項目を追加または編集するアクセス権を持つユーザーに、メニュー項目を新しいウィンドウで開くか同じウィンドウで開くかを選択できるようになります。
メニューリンク属性 モジュールはDrupal 8.の場合、箱から出してこれを解決します。ただし、メニューの各リンクに設定する必要があります。