【コピペで簡単、5分で出来る】target="_blank"をアフィリエイトリンクから削除する方法。

wordpressの記事内にあるtarget="blank"と一緒に自動生成されてしまったnoopener、noreferrerを簡単に一括削除する事が出来たので、その方法をメモ代わりに残しておきます。

A8.net、バリューコマース、もしもアフィリエイトなど主要なASPが相次いでtarget="blank"の削除の推奨を発表しました。

そこで私も手持ちのサイトの
target="_blank"の削除を行いました。

最初は手動で一つずつ
消していくつもりだったのですが
非常に面倒くさくて、すぐに挫折しました・笑

そこで何か良い方法はないかと
色々調べた結果、functions.php にコードをコピペすれば一括でターゲットブランクを置換(取り除く)できるやり方を発見しました。

target="_blank"をアフィリエイトリンクから削除する方法。【コピペで簡単】

functions.php にコードをコピペすれば完了

やり方は簡単で、以下の
コードをfunctions.php(子テーマ)にコピペすればOKです。

参考にさせて頂いた記事はこちらです(感謝)。

WordPressの投稿・固定ページの本文からtarget属性(_blankなど)を取り除く方法

作業自体はコピペだけなので、
5分もかかりません。

ただし、お使いになっている
レンタルサーバーのPHPのバージョンが5.4以上でないと動かない可能性があります。事前にレンタルサーバーの
管理画面にログインして自分のサイトのPHPバージョンを確認してみて下さい。

「レンタルサーバー名 phpバージョン」で検索すると確かめ方やアップグレードの方法が分かります。

実際の手順

それでは、実際にやってみましょう。

このブログは「simplicity2」という
テーマを使っていますので、こちらで解説します。

他のテーマを使っていても
だいたい同じ流れで行けると思います。

1.「ダッシュボード」→「外観」→「テーマエディター」

WordPress の編集画面
「ダッシュボード」から左端にあるメニューの「外観」→「テーマエディター」をクリックします。

2. functions.php の編集画面へ移動

すると「テーマの編集」画面に移りました。
この画面は【style.css】を編集する画面です。

今回、編集するのは
「テーマのための関数(functions.php)」なので、画面右側の四角い枠で囲った部分をクリックして、「テーマのための関数(functions.php)」へ移動します。

3. コードをコピーする

本記事で先に載せたコードの
四角い枠(オレンジ色)で囲った部分をクリックします。

すると、写真の様に青くなって
コード部分が選択されますので、コピー(右クリック→コピー)します。
(もちろんCtrl + c  , Command + c などお使いのPCのショートカットキーでコピーも可)

4. functions.php の編集画面でペーストする

先に開いておいたfunctions.php の編集画面の
この部分にペーストします。

こんな感じでペースト出来ました。
ちゃんと貼り付けられたのを確認したら、「ファイルを更新」ボタンを押して終了です。

なお、上の写真では、
コピペしたコードの下に、
私が過去に入れた別のカスタマイズ用のコードが入っています。

後から見てわかりやすくするために
1行あけていますが(薄い青の行の部分)
ここは間隔を空けても空けなくても大丈夫(どっちでも正常に動く)でした。

今まで、functions.php を
まったくさわった事がないという方は
今回コピペしたコードの下には、何も文字などがない状態だと思います。

その場合は、それで大丈夫です。

以上で作業完了です。

noopener ,noreferrer も一緒に取り除く。

少しだけ上記コードの説明です。

ワードプレスでは、発リンクで
「別のタブで開く」を指定すると
つまりtarget="_blank"を入れると、rel="noopener"が自動的に付加されます。

また、少し前のバージョンの
ワードプレスでは、rel="noreferrer"も自動で生成されていました。

target="_blank" を取り除くと
これらも必要がなくなるので、ついでに消しています。

str_replace(' noopener', '', $the_content);
str_replace(' noreferrer', '', $the_content);

上記コードのこの部分で、noopener と noreferrerを消しています。

アフィリコードは基本的に
rel="nofollow"が入っているので、実際のWordPress上でのアフィリンクの【rel 属性】
はこのように表示されています。

rel="nofollow noopener"

rel="nofollow noopener noreferrer"

ですので「(スペース)noopener」と
「(スペース)noreferrer」を
消し込んでやれば、rel="nofollow"だけが残り万事OKとなります。

rel="nofollow" は重要なので
そのまま残してあげなくてはいけません。

また、かなり昔のアフィリエイトリンクの場合rel="nofollow"がまだ入っていないものがあります。

そのケースでは、「noopener」が
残ってしまうので、これを「nofollow」に置換しました。

$the_content = str_replace('noopener', 'nofollow', $the_content);

ですので、この1行は
2017年後半以降にブログを
始めた方は必要がないので、削除して使って頂いても大丈夫です。

注意点

投稿・固定ページ以外にあるtarget="_blank" はこのカスタマイズだと取り除けません。

このコードを入れると、
Wordpressの投稿・固定ページの本文中から【target="_blank"】と
rel="nofollow noopener noreferrer"の中にある【noopener noreferrer】を取り除く事ができます。

しかしサイドバーの部分や
別のカスタマイズ部分にある
target="_blank"などは取り除かれずにそのまま残ってしまいます。

サイドバーにターゲットブランクが
ある場合は、ウィジットなどから
手作業で取り除いてしまえば良いのでそれほど手間ではないかと思います。

もしくは、こちらの記事

WordPressページ全体からtarget=_blankを削除するカスタマイズ方法

のコードを参考にすると、
WordPress全体からターゲットブランクなどを削除できます。

本文中に target="_blank"という文字列があるとそれも削除されてしまいます。

普通のブログでは
(スペース)target="_blank"と本文中に書くことはまずないと思いますが、

プログラム系や、
アフィリエイト系のブログを
運営されている方は気をつけて下さい。

気をつけなければイケナイ文字列

(スペース)target="_blank" → 表示されなくなる
(スペース)noopener → 表示されなくなる
(スペース)noreferrer → 表示されなくなる
noopener → nofollowに置換されて表示される。

テキストエディター内のtarget="_blank"などはそのままですが、実際に投稿を表示させると削除されています。

今回のカスタマイズは
記事内のコード(文字)を完全に書き換えてしまうのではありません

あくまでターゲットの文字列を
置換して(取り除いて)表示しているです。

コードをコピペで入れても
元データである、
記事の編集画面(テキストエディタ)内のtarget="_blank"はそのままです

しかし、実際にブログ上に
表示される際には、それらは取り除かれています。該当記事を表示して、右クリックで「ページのソースを表示」して、アフィリエイトリンクなどを確認してみると、target="_blank"がちゃんと削除されているかどうかをチェックできます

作業が終わったら確認しよう

作業が終わったら
自分でアフィリエイトリンクを踏んでみて
ちゃんとリンク先に飛べるかどうかも確認しましょう。

その時、ターゲットブランクが
削除されているため、別タブは開かず、同じタブでリンク先に移動すればOKです。

いつでも元に戻せるようにバックアップ体制を整えてから作業しましょう

万一、functions.php の編集で失敗すると
画面が真っ白になってしまい、サイトが表示されなくなるなど、精神衛生上よろしくない自体も起こり得ます。

編集前にバックアップを取って、
元に戻すための手順を頭に入れておいてから作業をしましょう。
実際の作業は自己責任でお願いします。

万一の時の復旧手順例

契約しているレンタルサーバーの
FTPファイルマネージャなどから
該当のfunction.phpファイル(子テーマ)を探して、付け加えた記述を削除する。

Search Regex を使って完全にtarget="_blank" を取り除くこともできます。

今回の方法で問題なく
ターゲットブランクなどを取り除く事に成功したら、

Search Regex などの文字列
置換プラグインを利用して、
完全にtarget="_blank"などを除去することも可能です。

ただし、Search Regex で置換した文字列は
元に戻す事が出来ないので、実行する際はバックアップを取っておきましょう。

私も、もう少し様子をみて
大丈夫ならSearch Regexでの完全除去に踏み切ろうと思います。

その場合は、まず最初にfunction.phpから、
今回コピペで入れたコードを削除します。

次にSearch Regexで
以下の順番で置換してやればOKです。

  1. 「(スペース)target="_blank"」→「削除」
  2. 「(スペース)noopener」 → 「削除」
  3. 「(スペース)noreferrer」 → 「削除」
  4. 「noopener 」→ 「nofollow」に置換

繰り返しになりますが
一度操作を行うと元に戻せないので
バックアップを取った上で、慎重に作業を進めて下さい。

Search Regexで完全に
target="_blank"を
削除するメリットは、function.php での処理がないため、わずかなレベルの差だとは思いますがサーバー処理の負担が減ります。【高速化命】という方にはおすすめです。

以上、target="_blank"を
一括で取り除く方法でした。

なぜtarget="_blank"は取り除いた方がいいの?

そもそもなんでターゲットブランク
(新しいタブで開く)を取り除かなくてはならないのか?

というと、スマホで特定のアプリや
ブラウザを使っている時に、
「ターゲットブランク付きのリンクから、リンク先へ移動できない。」という問題が出てきているためです。

「リンクを踏んでも、相手先(成約先のページ)に飛べない。」という事は、アフィリエイト報酬が発生する可能性ゼロという事ですよね・・・。痛い。痛すぎます。

私個人としては、
普段からPCでネットを見る事が多いので、
「新しいタブで開く(target=_blank)」は便利だなと思っています。

ただ、スマホを使っている人には
「新しいタブで開く」はほとんどメリットがないだろうというのも簡単に想像がつきます。

自分のブログの収益も
スマートフォンからが7割を
超える比率になって来ています。

昔は、PCユーザーをメインに想定して
サイト運営をしていましたが、現在はスマートフォンユーザーをまず第一に想定しながらのサイト&ブログ設計が求められる時代になりました。

アフィリエイトはしょっちゅう
ルール変更があるゲームです。時代に応じて柔軟に変えていく事も必要ですね。

編集後記:

話は全然かわりますが、最近はtwitterを
すっかり気に入ってしまい、
毎日なんやかんやとブログ&アフィリエイトや海外節約生活についてつぶやいています。

よろしければ、気軽にフォローor声をかけて下さい。

いずれは海外自営業者
(ブロガー以外も大歓迎)の
コミュニティーなんか作れたら楽しそうだななんて思っています。

近況の報告記事は

私は今年の4月から、日本を出て海外を拠点に生活を始めました。この記事ではアフィリエイターの海外移住についての感想と、アフィリしな...
こちらに書きましたので、ついでにこちらもぜひ。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする