アフィリエイト収益を逃さないためにnoreferrer属性を削除する

WordPressの投稿時、リンクに「新しいタブで開く」が指定されていると、そのリンクに「noopener」属性と「noreferrer」属性が自動的に付加されます。

「noopener」属性はセキュリティ対策として勝手に付加されてもええんやけど、「noreferrer」属性は付加されると、アフィリエイトサービスによっては参照元(コンバージョンリファラと言います)がわからなくなるので、誰が売り上げたかわからず成果として計上されない可能性があります。

目次

プラグインを使って値を置き換える方法

★この項は結局は使えないので読み飛ばしてOKです。

WP External Links というプラグインを使えば、現在の値を「上書き」で書き換えることができます。

プラグイン画面から WP External Links を探してインストール。

インストールしたら有効化します。

外部リンクメニューを開き、「外部リンク」タブの
・「既存の値を上書きします。」にチェック。
・「”noopener”を追加」にチェック。
・「”noreferrer”を追加」のチェックを外す。

このプラグイン導入後、リンクのある記事を更新しようとすると、「更新に失敗しました。 返答が正しい JSON レスポンスではありません。」というエラーが表示されます。

これを回避するには、外部リンク設定の「例外」タブの
・「すべてのコンテンツ (ページ全体)」のチェックを外す。
・「投稿のコメント」のチェックを外す。
・「コメント」のチェックを外す。
・「すべてのウィジェット」にチェック。

これでウィジェットにある外部リンクから noreferrer を除外することができました。
って、noreferrerを外したいのは記事中のリンクなので意味ないですね。エラーも出るし。

functions.php を改造して noreferrer を外す

テーマエディターから子テーマのfunctions.phpを選択し、以下のコードを追加します。

<?php
//////////////////////////////////////////////////
//記事から 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);
?>

このコードを追加することで、過去記事の中のすべての外部リンクから「noreferrer」を除外します。
★注:このコードはこのコードが機能しているため、noreferrer が表示されていません。

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
目次
閉じる