Wordpressテーマの販売やHTMLテンプレートの無料配布

target=”_blank”付けたままnoopener noreferrerを無効にする方法 (WordPress)

2019.05.29

WordPressがアップデートされた後、リンクにtarget=”_blank”を入れると今までなかった「noopener noreferrer」が勝手に付くようになりました。これって意外と迷惑な部分もある。

アフィリエイトをやっている人は今けっこう困ってるんじゃないかなと思うんです。なぜって、

アフィリエイトで成果が発生しても無効になる事があるから。

もしアフィリエイトの成果報酬が1万円の案件が無効になった場合、もちろん1万円とはおさらばです・・・イヤダ…

でも簡単に「noopener noreferrer」を無効にすることができますよ。その方法教えます。

対策方法をネットで調べてみると

ネットで検索して調べてみるといろんな所で「noopener noreferrerを無効にするにはリンクタグから「target=”_blank”」を消してしまえばいい」という事が書かれています。

え、でもめんどくさい・・・今までのリンクタグを全部編集していけってこと?

しかもアフィリエイト会社(ASP)によってタグの改変は禁止にしてるところありますよ。楽天とか厳しいし・・・あと、外部サイトのリンクは別ウィンドウや別タブで開きたいですよね。

noopener noreferrerを無効にする方法

で、本題なのですが、「noopener noreferrer」を無効にする方法です。「WP External Links」というプラグインを使います。それとfunctions.phpにも付け足すものがあります。

WP External Linksはもともとサイトの内の外部リンクに「rel=”nofollow」を付与するプラグイン。自分でリンクタグにrel=”nofollowを入れなくても自動的にnofollowを付け加えてくれるものです。

プラグインの設定

「WP External Links」をインストールした後、管理画面の設定で、

  • 「既存の値を上書きします。」にチェック。
  • 「”noopener” を追加」のチェックを外す
  • 「”noreferrer”を追加」のチェックを外す

で、「変更を保存

「WP External Links」を設定した後に確認。

WordPressテーマのShopieにあるウィジェットで設定したランキング内の外部リンクに「target=”_blank”」が入っていても「noopener noreferrer」がついていないことがわかると思います。

ショートコードで設置したボタンの外部リンクにも「WP External Links」の設定が適用されています。ウィジェットでできたコンテンツ内などでも適用される。

functions.phpへ記述

でもウィジェット内などの外部リンクの「noopener noreferrer」は無効にできるのですが、これだけだと記事本文に入れた外部リンクにはまだ「noopener noreferrer」付きのままです。

WordPressは自動形成機能というのがついているので、記事本文の中の「target=”_blank”」付きの外部リンクは勝手に「noopener noreferrer」が入ってしまう。わざわざ手動で削除してもリロードしたり、記事投稿画面に入りなおすとまたもとに戻っています、

これをなんとかしたい。特に今まで作った記事に入れたリンクの中の「target=”_blank”」を一つ一つ削除していくなんて面倒だし・・・アフィリエイトリンクのタグなど貼ってる人は記事の中からタグを探して修正していくなんてさすがにしんどいですよね。。

そんな時は、functions.phpに下記のコードを追加します。

//記事本文からnoopener noreferrerを削除---------------------------------
function remove_noopener_and_noreferrer_demo($the_content){
  $the_content = str_replace(' rel="nofollow noopener noreferrer"', ' rel="nofollow"', $the_content);
  $the_content = str_replace(' rel="noopener noreferrer"', '', $the_content);
  return $the_content;
}
add_filter('the_content', 'remove_noopener_and_noreferrer_demo', 9999);

このコードは記事本文の中の「target=”_blank”」付きの外部リンクから「noopener noreferrer」を取り除いてくれるコートです。今まで作成してきた記事の中の「target=”_blank”」付きの外部リンクすべてに適用されます。

先ほどのコードをfunctions.phpに記述した後に確認してみると、target=”_blank”が設定されているリンクタグでも「noopener noreferrer」が無効になっているのがわかると思います。

WordPressの管理画面で投稿記事内のリンクタグを見てみると、自動形成機能が働いて「noopener noreferrer」がついたままなのですが、実際のサイト上では「noopener noreferrer」は無効になっています。

自動形成機能自体をOFFにする方法もあるのですが、先ほどのタグだけでも投稿した記事のソースコード内からは消えているので大丈夫です。


「noopener noreferrer」は脆弱性防止とかの理由でついているので、あったほうがいいらしいのですが、今までWordpressでこのタグが付いていなかったときも問題なかったし・・・一応、自己責任でお願いします。

当サイトに掲載された記事・写真の無断転載を禁じます
Copyright 2015 HTM-WEB All Rights Reserved.