カエレバの楽天リンクをもしもアフィリエイトに張り替える【テスト運用編】

カエレバの楽天リンクを、もしもアフィリエイトのリンクに張り替える、と前回の記事に書きました。さっそく作業に取り掛かっているのですが、何か問題があったときに対応できるようにしておくべきだと考えます。

スポンサーリンク

いつでも戻せるように

本命サイト「得意なことからコツコツと」には、カエレバが70カ所ほど設置してあります。70程度なら、手作業で張り替えていってもできない数ではありません。

でも、張り替えた後に問題が発生し、元に戻さなければならないような状況になったら面倒です。そこで、まずはリンクそのもには手を加えずに、PHPコードで一時的に置きかえる手段を取ります。

前提として当サイトでは、カエレバはAmazon商品で作成しています。楽天の商品からリンクを作成している場合は以下の方法では出来ません。

カエレバの楽天部分を比較

次のカエレバを使います。

下に楽天部分だけを切り出してみました。非常に読みにくくて申し訳ありませんが、スクロールして確認してみてください。

今回は、これ以外の場所には手を加えません。

【楽天リンク】

<div class="shoplinkrakuten"><a href="https://hb.afl.rakuten.co.jp/hgc/**********楽天のID**********/?pc=http%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FXD-G4800%2F-%2Ff.1-p.1-s.1-sf.0-st.A-v.2%3Fx%3D0%26scid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2F" target="_blank" rel="nofollow">楽天市場</a></div>

【もしもリンク】

<div class="shoplinkrakuten"><a href="//af.moshimo.com/af/c/click?a_id=**もしもID**&amp;p_id=54&amp;pc_id=54&amp;pl_id=616&amp;s_v=b5Rz2P0601xu&amp;url=http%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FXD-G4800%2F-%2Ff.1-p.1-s.1-sf.0-st.A-v.2%3Fx%3D0" target="_blank" rel="nofollow">楽天市場</a><img style="border: none;" src="//i.moshimo.com/af/i/impression?a_id=**もしもID**&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" /></div>

比較してみます。

頭の『<div class=”shoplinkrakuten”>』は同じなので無視します。

続く、『<a href=”//…』から見ていくと、どちらにも『XD-D4800』があります。これは商品名です。

いくつかのカエレバを確認しましたが、商品名以外は同じ内容でした。商品名だけを残して置き換えれば良さそうです。

一点だけ注意です。
リンクを比較する場合は、WordPressに貼り付けたものを切り出しておこなってください。カエレバで作成したものをWordPressに貼り付けると、自動的にリンクが一部修正されます。当サイトで利用しているテーマの「Simplicity2」が最適化しているのではないかと思います

もしもリンクをたどっていくと『&amp』という記述が見られますが、カエレバで作った直後には含まれていません。

PHPで置換

記事を元から書き換えるのではなく、ページが表示されるときにPHPによって上書きします。テーマの編集から「functions.php」に次のコードを追加しました。

//カエレバの楽天リンクをもしも化する
function chagne_kaereba_url($the_content){

//楽天→もしもアフィリエイト
//前半
$search = '<a href="http://hb.afl.rakuten.co.jp/hgc/**********楽天ID**********/?pc=http%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F';
$replace = '<a href="//af.moshimo.com/af/c/click?a_id=**もしもID**&amp;p_id=54&amp;pc_id=54&amp;pl_id=616&amp;s_v=b5Rz2P0601xu&amp;url=http%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F';
$the_content = str_replace($search, $replace, $the_content);

$search = '<a href="https://hb.afl.rakuten.co.jp/hgc/**********楽天ID**********/?pc=http%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F';
$replace = '<a href="//af.moshimo.com/af/c/click?a_id=**もしもID**&amp;p_id=54&amp;pc_id=54&amp;pl_id=616&amp;s_v=b5Rz2P0601xu&amp;url=http%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F';
$the_content = str_replace($search, $replace, $the_content);


//後半
$search = '%2F-%2Ff.1-p.1-s.1-sf.0-st.A-v.2%3Fx%3D0%26scid%3Daf_ich_link_urltxt%26m%3Dhttp%3A%2F%2Fm.rakuten.co.jp%2F" target="_blank" rel="nofollow">楽天市場</a></div>';
$replace = '%2F-%2Ff.1-p.1-s.1-sf.0-st.A-v.2%3Fx%3D0" target="_blank" rel="nofollow">楽天市場</a><img style="border: none;" src="//i.moshimo.com/af/i/impression?a_id=**もしもID**&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" /></div>';
$the_content = str_replace($search, $replace, $the_content);

return $the_content;
}
add_filter('the_content', 'chagne_kaereba_url', 1);

前半は商品名より前の部分になります。前半はhttpとhttpsがあったので、ふたつになっています。

後半部分もカエレバの設定や作った時期で内容が違う場合があるので、検索を駆使してすべてあらいだしてください。上のコードでは省きましたが、後半も3種類ありました。

このコードを「functions.php」から削除すると楽天のコードで表示されるように戻ります。

しばらくこの状態でテスト運用をおこない、問題がなければプラグインの「Search Regex」を使って元データを書き換えます。

まとめ

ここまで手間を掛ける必要があるかというと疑問も残ります。でも、元に戻せる知識を身につけていることは大切なことだと思います。

  • もしもが楽天の取り扱いをやめた
  • 変更後、あきらかに成果が下がった

などの場合も、あわてずに対応できます。

ちゃんと成果あがるかな?