Link Target
DrupalのLinkフィールドにtarget属性の選択機能を追加し、コンテンツ編集者がリンクの開き方(同じウィンドウ、新しいウィンドウなど)を指定できるようにします。
link_target
インストール
composer require 'drupal/link_target:8.x-1.5'
概要
Link Targetモジュールは、Drupalコアのリンクフィールドを拡張し、コンテンツ編集者が各リンクのtarget属性を選択できるウィジェットを提供します。これにより、新しいウィンドウやタブでリンクを開くなど、リンクの動作を細かく制御できます。
このモジュールは「Link with target」フィールドウィジェットを追加し、Linkフィールドを使用する任意のエンティティタイプのフォーム表示設定で選択できます。編集者がコンテンツを作成または編集する際、標準的なHTML target値(_self:現在のウィンドウ、_blank:新しいウィンドウ、_parent:親フレーム、_top:最上位フレーム)から選択できるドロップダウンメニューが表示されます。
サイト管理者は、フィールドごとに利用可能なtargetオプションを設定でき、コンテンツ編集者に表示される選択肢を制限できます。選択されたtarget属性はフロントエンドのリンクにレンダリングされ、期待通りのブラウザ動作を提供します。
Features
- Linkフィールドフォームに「ターゲットを選択」ドロップダウンを追加し、編集者がリンクの開き方を指定できるようにします
- すべての標準HTML target属性値をサポート:_self(現在のウィンドウ)、_blank(新しいウィンドウ/タブ)、_parent(親フレーム)、_top(最上位フレーム)
- 管理者がウィジェット設定を通じてフィールドインスタンスごとに利用可能なtargetオプションを制限できます
- 追加の管理ページを必要とせず、既存のLinkフィールド設定とシームレスに統合
- 選択されたtarget属性をフロントエンド出力のリンクに直接レンダリング
- DrupalコアのLinkウィジェットを拡張し、既存のLinkフィールド機能との完全な互換性を維持
Use Cases
外部リンクを新しいタブで開く
一般的なユースケースは、外部リンクを新しいブラウザタブまたはウィンドウで開くことです。ウィジェット設定で_blankターゲットオプションを有効にし、外部URLに対してそれを選択するよう編集者をトレーニングすることで、訪問者が外部リンクをクリックしてもサイトから離れないようにできます。
iframeナビゲーションを使用するシングルページアプリケーション
iframeやフレームセットを使用するサイトでは、_parentと_topのtargetオプションにより、リンクがフレームから抜け出して親ウィンドウまたは最上位のブラウジングコンテキストで読み込まれるようにできます。
一貫性のための編集者の選択肢を制限
ブランドガイドラインですべてのリンクを同じウィンドウで開くことが求められる企業サイトでは、管理者は_selfオプションのみを表示するようにウィジェットを設定し、編集者が誤って他の動作を使用することを防ぐことができます。
コンテンツの多いサイトでの混合リンク動作
ニュースサイトやブログでは、記事リンクは同じウィンドウで開き、広告やパートナーリンクは新しいタブで開くことがよくあります。Link Targetウィジェットにより、編集者はリンクごとにこの選択を行う柔軟性を得られます。
Tips
- ウィジェット設定でターゲットが選択されていない場合、4つのtargetオプションすべてが編集者に利用可能になります
- ターゲット選択はコンテンツ編集フォームのURLとリンクテキストフィールドの下に表示されます
- _blankターゲットは、ユーザーをサイトに留めておくために外部リンクで最も一般的に使用されます
- _blankを使用する際はサイトのアクセシビリティ要件を考慮してください。新しいウィンドウを開くことは一部のユーザーにとって混乱を招く可能性があります
Technical Details
Troubleshooting 3
コンテンツタイプのフォーム表示設定でウィジェットタイプを「Link with target」に変更したことを確認してください。サイト構成 > コンテンツタイプ > [対象のタイプ] > フォーム表示の管理に移動し、Linkフィールドのウィジェットを変更します。
フォーム表示のウィジェット設定を確認してください。Linkフィールドの横にある歯車アイコンをクリックしてウィジェット設定にアクセスし、どの「Available Targets」チェックボックスが選択されているか確認します。
表示の管理設定でLinkフィールドフォーマッターが正しく設定されていることを確認してください。target属性はリンクのオプションに保存され、標準のLinkフォーマッターによって出力されるはずです。