WordPressのver 4.7.1あたりから、aタグで別タブで開くように設定する(target=”_blank”)と、自動で

rel=”noopener noreferrer”

が追記されるようになりました。

このタグはセキュリティのためのものなのですが、アフィリンクにこのタグを入れておくとアフィリンクが機能しなくなることがあるようです。

function.phpにphpを加筆して、aタグからnoopener noreferrerをなくすこともできますが、php触りたくない人向けに、javascriptでnoopener noreferrerを取り除くソースを作ったので公開します。

なおこのソースのメリットとして、ブラウザで表示された後にnoopener noreferrerを取り除くのでWordPressの仕様が変わってもjQueryが使える限りずっとメンテフリーで使えます。

aタグから自動でnoopener noreferrerを取り除くjavascript

jQueryを使うのでjQueryを読み込ませた後に以下のソースを記述すれば、全てのaタグからnoopener noreferrerが無くなります。

jQuery(document).ready(function($){
    $('a').each(function(i,e){
        var before_a_rel = $(e).attr('rel');
        if(typeof before_a_rel === "undefined"){}else{
            var new_a_rel = before_a_rel.replace('noopener' , '').replace('noreferrer' , '');
            $(e).attr('rel',new_a_rel);
       }
    });  
});

記事中だけでなく、表示されている全てのaタグからnoopener noreferrerが取り除かれます。