Word Press

target="_blank"に勝手に付くnoopener noreferrerのnoreferrerだけ取り除く方法【WP】

WPでtarget="_blank"属性を付けた時に勝手に付く「noopener noreferrer」を取り除く方法。

アフィリエイター目線での話だ。

ちなみにタグの改変はASPによって規約違反になるから注意してくれ。

 

noopener noreferrerはあったけど、noreferrerだけ取り除く方法がなかったから備忘録として。

コードを書いた後にそれぞれの説明を簡単に書いておく。

 

ちなみに俺はあまりHTMLとかPHPとかのコードに詳しくない。

全て独学だから自己責任で。

 

一応わかる範囲で解説はする。

 

まずはビジュアルエディターで自動付加されるnoopener noreferrerをnoopenerだけにする方法から

 




コピペでOK!noreferrerだけ取り除く方法

まずは結論から。

コピペする場合はこの二つのコードをテーマ編集画面でfunctions.phpに貼り付けるだけ。

//ビジュアルエディタでnoreferrerが自動付加されないようにする
add_filter('tiny_mce_before_init','tinymce_allow_unsafe_link_target_demo'); function tinymce_allow_unsafe_link_target_demo( $mce_init ) { $mce_init['allow_unsafe_link_target']=true; return $mce_init; } add_filter( 'wp_targeted_link_rel', 'wp_targeted_link_rel_custom_demo', 10, 2 ); function wp_targeted_link_rel_custom_demo( $rel_value, $link_html ){ $rel_value = str_replace(' noreferrer', '', $rel_value); return $rel_value; }

参考:WordPressエディターが自動付加するrel="noopener noreferrer"を除去する方法

//本文からnoopenerを残してnoreferrerだけ取り除く
function remove_noopener_and_noreferrer_demo($the_content){
$the_content = str_replace(' rel="nofollow noopener noreferrer"', ' rel="nofollow noopener"', $the_content);
$the_content = str_replace(' rel="noopener noreferrer"', ' rel="noopener"', $the_content);
return $the_content;
}
add_filter('the_content', 'remove_noopener_and_noreferrer_demo', 9999);

 

ここからはコードの解説

 

ビジュアルエディタでnoreferrerが自動付加されないようにする

//ビジュアルエディタでnoreferrerが自動付加されないようにする
add_filter('tiny_mce_before_init','tinymce_allow_unsafe_link_target_demo'); function tinymce_allow_unsafe_link_target_demo( $mce_init ) { $mce_init['allow_unsafe_link_target']=true; return $mce_init; } add_filter( 'wp_targeted_link_rel', 'wp_targeted_link_rel_custom_demo', 10, 2 ); function wp_targeted_link_rel_custom_demo( $rel_value, $link_html ){ $rel_value = str_replace(' noreferrer', '', $rel_value); return $rel_value; }

参考:WordPressエディターが自動付加するrel="noopener noreferrer"を除去する方法

ここの記事を参考にした。(この記事に書いてあるコードそのまんま)

 

すでに投稿してある記事内で付加されたnoopener noreferrerのnoreferrerだけ取り除く

次にすでに投稿した記事のnoreferrerを消すコード。

//本文からnoopenerを残してnoreferrerだけ取り除く
function remove_noopener_and_noreferrer_demo($the_content){
$the_content = str_replace(' rel="nofollow noopener noreferrer"', ' rel="nofollow noopener"', $the_content);
$the_content = str_replace(' rel="noopener noreferrer"', ' rel="noopener"', $the_content);
return $the_content;
}
add_filter('the_content', 'remove_noopener_and_noreferrer_demo', 9999);

参考:コピペでOK!覚えておくと便利な WordPress 小技集

このコードは俺が改変してる。

 

元々のコードはこれ。

ちなみにこコードはnoopener noreferrerを消すコード。

//本文から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);

 

俺のがこれ。赤字部分を追加してる

//本文からnoopenerを残してnoreferrerだけ取り除く
function remove_noopener_and_noreferrer_demo($the_content){
$the_content = str_replace(' rel="nofollow noopener noreferrer"', ' rel="nofollow noopener"', $the_content);
$the_content = str_replace(' rel="noopener noreferrer"', ' rel="noopener"', $the_content);
return $the_content;
}
add_filter('the_content', 'remove_noopener_and_noreferrer_demo', 9999);

 

元々のコードは

nofollow noopener noreferrer → nofollow 属性に、

noopener noreferrer → 無印(target=blankのみ)に置き換えるコード。

 

俺のはそこにnoopenerを足しただけ

nofollow noopener noreferrer → nofollow noopener 属性に、

noopener noreferrer → nofollow noopener に置き換えるコードにした。

 

俺のサイトでは実際に過去記事もちゃんとnofollow noopener属性になってたのが確認できたから、コピペで大丈夫だと思う。

コピペする場合はこの二つのコードをコピペ

//ビジュアルエディタでnoreferrerが自動付加されないようにする
add_filter('tiny_mce_before_init','tinymce_allow_unsafe_link_target_demo'); function tinymce_allow_unsafe_link_target_demo( $mce_init ) { $mce_init['allow_unsafe_link_target']=true; return $mce_init; } add_filter( 'wp_targeted_link_rel', 'wp_targeted_link_rel_custom_demo', 10, 2 ); function wp_targeted_link_rel_custom_demo( $rel_value, $link_html ){ $rel_value = str_replace(' noreferrer', '', $rel_value); return $rel_value; }

参考:WordPressエディターが自動付加するrel="noopener noreferrer"を除去する方法

//本文からnoopenerを残してnoreferrerだけ取り除く
function remove_noopener_and_noreferrer_demo($the_content){
$the_content = str_replace(' rel="nofollow noopener noreferrer"', ' rel="nofollow noopener"', $the_content);
$the_content = str_replace(' rel="noopener noreferrer"', ' rel="noopener"', $the_content);
return $the_content;
}
add_filter('the_content', 'remove_noopener_and_noreferrer_demo', 9999);

 

どちらもテーマ編集画面でfunctions.phpに貼り付けるだけだ。

 

ここからは雑談。

WPのtarget="_blank"問題とは?

WPでビジュアルエディタを使ってリンクにtarget="_blank"(新しいタブで開く)にすると勝手にnoopener noreferrerがつくという問題。

ツイッターで話題になってて初めて知った。

 

てかノーリファラーとか知らんかったし。

 

タグの改変は規約違反

タグの改変はタグの改変はASPにもよるが、規約違反。

何かあっても、発生測定できなくても、支払いがなくなっても、非承認にされても文句は言えない。

 

タグの改変とかに関してはここが詳しい+実際にASPに問い合わせてくれている。

参考にするといいだろう。

参考:アフィリエイトリンクの target=”_blank” は外す方が良さそう。rel=”noopener noreferrer” が成果測定に悪影響

 

タグの改変については知識がないからここでは言及しない。

 

noopenerとは?どんな問題がある?

target="_blank"(新しいタブで開く)でnoopenerを付けないことによる問題は、セキュリティーが弱くなる。

 

元々新しいタブで開いたページは開いたページから元のページを改変できるという脆弱性があるらしい。

(詳しくは知らん、すまん)

 

noopenerがついてれば自サイトの情報が漏れないけど、ついてないと新しく開いたタブから自サイトの情報が漏れてしまうってこと(かなりはしょってる、詳しくは調べてな)

 

例えるなら、人に道を教えると自分の素性が全てわかってしまうような状況。

 

「セキュリティー的にマズイっしょ」

ってことでWPの使用でtarget="_blank"(新しいタブで開く)の時は勝手にnoopener noreferrerがつくようになった。

 

付けなくてもいいっぽいけど、付けてないとセキュリティー的に困りそうだから俺は付けたままにした。

 

noreferrerとは?どんな問題がある?

target="_blank"(新しいタブで開く)でnoreferrerを付けないことによる問題は、ASPで測定は狂う可能性がある!!!

これは大問題だ。

 

noreferrerは「このページからリンクをたどりましたよ」みたいな情報を送信しないようにする属性。

トラッキング防止みたいなものだ。

(全然自信ない、各自調べて)

 

クッキー情報が正しく送信されなかったりで、発生計測できない可能性もあるみたいだ。

 

あとは流入元とかクエリとかがわからなくなる。

俺はずっとこの状態だった。

 

発生してるのになぜか「発生クエリ無し」になる。

他の人はクエリなんちゃらって話ししてんのに。

 

報酬はもらえてるからいいやって思ってたけど、多分noreferrerがついてたからだと思う。

ほんとう、痛いやつだ。

 

一般的なtarget="_blank"(新しいタブで開く)でnoreferrerを付けないことによる問題は、、、

すまん、よくわからん。noreferrerはこちらの情報を新しいタブに届けることだから、これもセキュリティー上の問題かも。

 

まとめ

以上、WPでtarget="_blank"属性を付けた時に勝手に付く「noopener noreferrer」を取り除く方法を解説した。

 

コード改変、テーマの編集はバックアップを取って、万全を期してやってくれ。

俺も何回もホワイトアウトしていたい目見てる。

 

誰かの役に立てたら幸いだ。




Copyright© 副業屋 , 2019 All Rights Reserved.