WordPressの外部リンクでnoreferrerを削除する方法[アフェリエイト]

WordPress

先日お客様から、analyticsで確認すると参照元が表示されないからなんとかしてほしいという連絡がありました。
これって前から結構あったお話でWordPressの標準機能なんですよね。。。

ということで、今回はそんなnoreferrerを削除する方法を紹介したいと思います。

その前に知っておきたいこと

「target=”_blank”」ってなに?

target=”_blank”」とはリンクの挿入で「リンクを新しいタブで開く」にチェックを入れるとつくHTMLの属性です。

<a href="https://kmnmc.com/0000/00/00/0000" target="_blank" rel="noopener noreferrer" >https://kmnmc.com/0000/00/00/0000</a>

「noreferrer」ってなに?

リンク(通常は<a>要素)をクリックしたときに新しいページやリンク先に遷移する際に、リファラ情報を伝えないようにするためのものです。

リファラとは

リファラ情報は、ユーザーがどのページからリンクをたどってきたかという情報を示しています。
しかし、一部の場面では、この情報を制御したり制限したりしたいケースがあります。
例えば、プライバシーの観点から、外部のウェブサイトに遷移するときに自分のサイトの情報を伝えたくない場合があります。

WordPressではセキュリティの観点からリンクを「リンクを新しいタブで開く」にチェックを入れると自動的にこの「noreferrer」が設定されてしまいます。
HTMLで直接編集したとしても更新ボタンをクリックしたりすると「noreferrer」がタグ内に入っていたりするんですよね。

「noreferrer」の設定を解除する

解除する方法としては簡単に分けてしまうと2つあり、function.phpで編集するか、プラグインを利用するかになってきます。
function.phpの編集はちょっと・・・という方は今回紹介したプラグインを導入してみてはいかがでしょうか?

プラグインで対応する

個人的にWP External Linksというプラグインがおすすめです。
設定自体も簡単ですし、過去の記事にも対応することが出来ます。

プラグインをインストールする

プラグインを追加から「WP External Links」を検索し「今すぐインストール」をクリックしたあとに有効化します。

プラグインの設定

メニューに「WP External Links」が追加されますので、そちらを押下しプラグインの設定画面を表示させます。

External Links」タブで設定していきます。
今回は新しいウィンドウで開いた時にのみ設定を活かしたいので
外部リンクを開く」から「それぞれの別の新しいウィンドウまたはタブ」を選択。
それから「rel 属性の追加」の「“noreferrer” を追加」のチェックを外し変更を保存をすれば基本的にはOKです。

これで「noreferrer」が表示されなくなりました。

このプラグインで設定をすると下記の様にリンクのソースを見てみると「data-wpel-link=”external”」のタグが追加されます。

<a href="https://kmnmc.com/2022/12/14/6356" target="_blank" rel="noopener" data-wpel-link="external">

これに関しては特に問題は無いので気にしなくてOKです。

このプラグインでは、その他にもCSSクラスを追加したり、アイコンを設置したりすることもできるので、興味がある方は是非設定してみてください。

アイコンを設定すると下記の画像の様にアイコンが表示されるようになります。
ユーザーには「外部リンク」ということが一目でわかるので便利ですよね!

function.phpで対応する

プラグインを導入せずにfunction.phpを編集することでnoreferrerを制御することも可能です。
この場合は以下のソースをfunction.phpに追加してください。

今回の作業はFTPまたはファイルマネージャーを使用してサーバーにアクセスする必要があります。
念の為にバックアップは必ず取っておきましょう!

//noopener属性は残して、noreferrer属性だけ削除
function remove_noreferrer($the_content){
  $the_content = str_replace('noopener noreferrer', 'noopener', $the_content);
  $the_content = str_replace('noreferrer noopener', 'noopener', $the_content);
  return $the_content;
}
add_filter('the_content', 'remove_noreferrer', 9999);
//noopener属性は残して、noreferrer属性だけ削除終了

まとめ

今回はWordPressの外部リンクで追加される「noreferrer」を削除する方法をご紹介しました。
noreferrerがあるとアフェリエイトでカウントされない場合もあるようですので、もしお悩みの方は1度検討してみてください!

タイトルとURLをコピーしました