【WordPress】target=”_blank”なリンク(aタグ)にrel=”noopener noreferrer”を付ける関数

【WordPress】target=”_blank”なリンク(aタグ)にrel=”noopener noreferrer”を付ける関数

2020.3.17

WordPress 5.1からリンクのセキュリティ面での対策としてtarget="_blank"が付いたリンク(aタグ)にrel="noopener noreferrer"を追加する関数が追加されました。

投稿本文などはこの関数が実行されるようにフィルターがかかりますが、テーマやプラグインを作る時にフィルターを通らない部分は自分でrel="noopener noreferrer"を付けることになります。

わざわざtarget="_blank"があるか判定してrel="noopener noreferrer"を付けるのは大変なので、そんな時はwp_targeted_link_rel関数を通せば簡単でしたよ!というお話です。

target=”_blank”が付いたリンク(aタグ)にrel=”noopener noreferrer”を付ける

タイトルの通り、target="_blank"が付いたリンク(aタグ)にrel="noopener noreferrer"を付ける関数があります。

関数名は「wp_targeted_link_rel」、引数は一つです。

投稿本文のようにごそっとHTMLを渡せばその中にあるaタグすべてを解析して、必要があればrel="noopener noreferrer"をつけてくれる関数です。

「とりあえず文字列渡せばよしなにやってくれる」みたいなやや乱暴な使い方ができるあたり、とっても嬉しいです。

wp_targeted_link_rel( '<a href="https://yosiakatuki.net/blog" target="_blank">ブログ</a>' );

例えば上のような文字列を渡せば、aタグにrel="noopener noreferrer"をつけて返してくれます。

<a href="https://yosiakatuki.net/blog" target="_blank" rel="noopener noreferrer">ブログ</a>

テーマやプラグインを作っていて、target="_blank"をつけたりつけなかったする機能を作る時は忘れずに使いたい関数ですね。

ただ、WordPress 5.1から追加になった関数ですので、関数があるかどうか確認する処理を追加したほうが安全かと思います。

ではまた。