記事内に広告が含まれています。

Affinger のブログカード(埋め込みリンク)を新しいタブで表示する方法

2024年9月23日

課題

Affinger の埋め込みリンク(ブログカード)は、リンクを新しいタブで開くオプション設定(target="_blank")がありません。

簡単な JavaScript コードの実装と、埋め込みリンクへのクラス付与で解決できます!解決方法を紹介します。

解決方針

JavaScript を利用し、埋め込みリンクに対して、target="_blank" を追加します。

JavaScript の実装

必要なページに、次の JavaScript を埋め込みます。

<script>
document.querySelectorAll('.target_blank a').forEach(function(anchor) {
    anchor.setAttribute('target', '_blank');
});
</script>

コードの解説

上記の JavaScript は、ページ上で

  • target_blank クラスを持つ要素(今回は埋め込みリンクの親要素である <figure> 要素)に含まれるすべての <a> タグを取得
  • 取得したすべての <a> タグに target="_blank" を追加

という処理を行っています。

JavaScript のサイト反映

サイト内に一律で有効化する場合

WordPress ダッシュボードの Affinger 管理 > カスタム投稿一覧の設定 > コードの出力 > </body>直前に出力するコード(その他のアクセス解析など) に、次の JavaScript コードを記述します。

<script>
document.querySelectorAll('.target_blank a').forEach(function(anchor) {
    anchor.setAttribute('target', '_blank');
});
</script>

埋め込みリンクの target プロパティに "_blank" が付与され、カードリンクは新しいタブで開きます。

ページごとに有効化を選択する場合

ポイント

上記の Affinger 管理での JavaScript 追加では、サイトの全てのページに JavaScript コードが組み込まれます。

ページごとに JavaScript の有効化を選択する場合、パターンなど、ページ個別にコードを埋め込む機能を利用し、該当ページに JavaScript を組み込んでください。

有効化するカードへのクラス付与

上記の JavaScript は、target_blank というクラスが付与されている埋め込みリンクにのみ有効に動作します。

記事編集画面の埋め込みリンク編集画面で、追加 CSS クラスtarget_blank を加えます。※ target_blank の前に . (ピリオド)は不要です。

実行結果

追加 CSS クラスtarget_blank クラスを加えた埋め込みリンク(ブログカード)が、リンクを新しいタブで開く状態になっていることが分かります。

-WordPress