やまでら くみこ のレシピ

短時間で簡単に作れる人気家庭料理を紹介。

楽天ランキング上位の商品を、全自動でアフィリエイトする方法をご紹介します。

投稿日:2014年8月9日 更新日:

WordPressで運用しているブログに楽天市場の人気商品を自動で貼り付ける方法を、ご紹介します。
一度設定をしておけば毎日更新されるので、手間がかかりません。
サイドバーや記事の途中など、ブログの空きスペースを有効活用できますよ。

設定のおおまかな流れ

処理のおおまかな流れはこのような感じです。

処理の流れ
  1. 1日に1回、ジャンル別の楽天ランキングを取得し、xml形式で自前のサーバーに保存する。
  2. ブログにアクセスがあるたびに、保存したxmlを読み込み、楽天アフィリエイトを表示する。

これを踏まえた設定の流れは、こうなります。

設定の流れ
  1. 楽天ウェブサービスに登録する。
  2. 楽天ランキングの取得とxml形式での保存を行う、phpスクリプトを作成する。
  3. そのphpスクリプトが、自サーバーのcronで定期的に実行されるよう設定する。
  4. xmlファイルを読み込みアフィリエイトタグに変換するよう、WordPressのfunctions.phpを設定する。

一番のネックは、サーバー上でcronを使えるかどうかです。
私が借りているsixcoreでは問題がありませんでしたが、cron使用不可のレンタルサーバーも多いようなので、その場合はこの方法は使えません。

楽天ウェブサービスに登録する

楽天ランキングを取得する際に楽天ウェブサービスのAPIを使用するので、あらかじめ登録しておきます。

楽天ウェブサービス

発行されたアプリIDとアフィリエイトIDは、後ほど使うのでメモしておきましょう。

楽天ランキングの取得とxml形式での保存を行う、phpスクリプトを作成する

楽天ランキングのジャンルごとの上位5つを取得するスクリプトを作成します。
コードは次のとおりです。

#!/usr/bin/php
<?php
function my_rakuten($genreId,$genreName){
    $affiliateId='楽天ウェブサービスのアフィリエイトID';
    $applicationId = '楽天ウェブサービスのアプリケーションID';
    $oDir = 'xmlファイルを出力するディレクトリ';
    $iFile = 'https://app.rakuten.co.jp/services/api/IchibaItem/Ranking/20120927?format=xml&affiliateId=' . $affiliateId . '&genreId=' . $genreId . '&applicationId=' . $applicationId;
    $oFile = $oDir . $genreName . '.xml';
    $iDom = new DOMDocument('1.0', 'UTF-8');
    $oDom = new DOMDocument('1.0', 'UTF-8');
    $oDom->formatOutput = true;
    if($iDom->load($iFile) != true){return;}
    $oContent = $oDom->appendChild($oDom->createElement('content'));
    $i = 0;
    while($i <= 4){
        $iItem = $iDom->getElementsByTagName("Item");
        $oItem = $oContent->appendChild($oDom->createElement('item'));
        $oItem->appendChild($oDom->createElement('name', $iItem->item($i)->getElementsByTagName("itemName")->item(0)->nodeValue));
        $oItem->appendChild($oDom->createElement('link', $iItem->item($i)->getElementsByTagName("affiliateUrl")->item(0)->nodeValue));
        $imageUrl = $iItem->item($i)->getElementsByTagName("mediumImageUrls")->item(0)->getElementsByTagName("imageUrl")->item(0)->nodeValue;
        $imageUrl = str_replace('128×128','300×300',$imageUrl);
        $oItem->appendChild($oDom->createElement('image',$imageUrl));
    $i++;
    }
    $oDom->save($oFile);
}
my_rakuten('100227','foods');
my_rakuten('551167','sweets');
my_rakuten('100938','diet');
my_rakuten('100939','cosme');
my_rakuten('100804','interia');
my_rakuten('101070','sports');
my_rakuten('562637','kaden');
my_rakuten('215783','zakka');
my_rakuten('558944','kitchen');
?>

環境に合わせて、3つの変数の値を入力します。

  • $affiliateId
    楽天ウェブサービスのアフィリエイトID。
  • $applicationId
    楽天ウェブサービスのアプリケーションID。
  • $oDir
    xmlファイルを出力するディレクトリ。/home/から始まるパスです。末尾に、/(スラッシュ)を付けます。

ジャンルごとのIDは、楽天ランキングのURLのものを使用します。
例えば、食品の場合だと、URLがhttp://ranking.rakuten.co.jp/daily/100227/なので、IDは「100227」となります。

phpスクリプトが、自サーバーのcronで定期的に実行されるよう設定する

まずは、先ほど作成したphpスクリプトを、サーバー上に保存します。
まあ、場所はお好きな所に。
続いて、ファイルパーミッションの設定。
私は「700」にしています。

そして、cronの設定です。
コマンドを打つのが一般的なようですが、私が使っているsixcoreでは管理画面から設定します。
sixcoreのマニュアルはこちら
sixcore
これだけだと分かりにくいので、「みやざきのインプレッサページ」さんの、このページもあわせて読むといいと思います。
crontabの書き方
実行する頻度は1日ごとでもいいのですが、たまにエラーで取得できないこともあるので、私は複数回実行するようにしています。
アクセス数の少ない、夜中の2時から4時の間に1時間ごとに実行したいので、下記のとおり設定しています。

  • 分:0
  • 時:2-4
  • それ以外:*

WordPressのfunctions.phpを設定する

私は2種類の方法で楽天の広告を表示させています。

ひとつは、ショートコードによる任意の場所への配置。
もうひとつは、moreタグ部分への配置です。
どちらの場合も、指定したジャンルの1位から5位までの人気商品のうち1個を、ページを開くたびランダムで表示させています。

それをまとめて設定するのが下記のコードです。
このコードをfunctions.phpに貼り付けます。ただし、functions.phpでエラーが出ると最悪WordPressが立ち上がらなくなるので、自己責任でおねがいしますね。

<?php
/********************************
楽天ランキングの人気商品を表示する
********************************/

/*————————–
共通関数
————————–*/

function rakutenranking_code($genre){
  $dirname = 'xmlファイルが保存されているディレクトリ';
  $filename = $dirname . $genre . '.xml';
  $xml = @simplexml_load_file($filename);
  $i = rand(0,4);
  $code = '<div style="text-align:center;">';
  $code = $code . '<a href="' . $xml->item[$i]->link . '">';
  $code = $code . '<img src="' . $xml->item[$i]->image . '" title="' . $xml->item[$i]->name . '" style="border:solid dimgray 1px;">';
  $code = $code . '</a></div>';
  return $code;
}
/*————————–
ショートコード
————————–*/

function rakutenranking_shortcode_pc($atts){
  extract(shortcode_atts(array('genre' => 'sweets'), $atts));
  return rakutenranking_code($genre);
}
add_shortcode('rakutenranking_pc', 'rakutenranking_shortcode_pc');
/*————————–
moreタグ下に広告を表示
————————–*/

add_filter('the_content', 'adMoreReplace_pc');
function adMoreReplace_pc($contentData) {
$code = '<div style="font-size:small;color:black;margin-top:50px;width:336px;text-align:left;">スポンサーリンク</div>
<div style="text-align:left;padding:0 0 20px 0;width:300px;">'

. rakutenranking_code('foods')
. '</div>';
return preg_replace('/<span id="more-[0-9]+"><\/span>/', $code, $contentData);
}
?>

rakutenranking_code関数の$dirname変数の値は、各自の環境に合わせて書き換えてください。
注意していただきたいのは、/home/から始まるサーバ上のパスではなくて、http://から始まるアドレスだということです。

最後にショートコードを配置します。
例えば、サイドバーに、家電の人気商品を表示させたい場合は、sidebar.phpに次のコードを貼り付けます。

<?php echo do_shortcode('[rakutenranking_pc genre="kaden"]'); ?>

まとめ

一見すると敷居が高そうですが、レンタルサーバー上でWordPressを運用している人なら、意外とカンタンにできると思います。

広告スペースに空きがある方は、いちど試してみてはいかがでしょうか。

おすすめ記事

分数の計算機ツール。分数のかけ算・割り算・足し算・引き算を簡単に。

素数判定プログラム。素数を見分けるためのフローチャートも紹介。

素因数分解の簡単計算アプリ!ツールなしで算出するやり方も解説。

最小公倍数の計算アプリ。手計算する場合の簡単な求め方も紹介。

最大公約数の計算機。サイト上で瞬時に計算!簡単な求め方も解説。

フランス語のアルファベットの簡単キーボード。一覧から文字を入力。

スペイン語のアルファベット入力キーボード。変換不要!一覧から文字を選択

ロシア語のアルファベット入力キーボード。変換不要!一覧から文字を選択

累乗・べき乗の計算機。指数が分数・小数・マイナスでもOK!

正三角形の面積・高さ・辺の長さの計算機。公式を使った求め方も紹介。

円の面積・直径・半径・円周の計算機。公式を使った求め方も紹介。

トルコ語のアルファベットの入力ツール。トルコ文字の簡単キーボード。

ギリシャ文字への変換を簡単に!見た目と読み方の一覧からギリシャ語を入力。

ページ内リンクのジャンプ先がずれる原因と解決方法【HTML】

平方根(ルート)の値を求める計算機。分数もOKな電卓サイト。

分数の計算機ツール。分数のかけ算・割り算・足し算・引き算を簡単に。

分数同士の計算をサイト上で簡単に行える、電卓アプリです。かけ算・割り算・足し算・引き算、どの計算方法にも対応しています。このツールは、計算に…

素数判定プログラム。素数を見分けるためのフローチャートも紹介。

この素数チェッカーは、指定した整数が素数かどうかを簡単に判定できるアプリです。もし素数でない場合は、その整数の素因数を一覧表示します。また、…

素因数分解の簡単計算アプリ!ツールなしで算出するやり方も解説。

素因数分解をサイト上で簡単に行える、計算機アプリです。入力は15桁以下に抑えるのがおすすめです。入力した数字が大きいと、計算にかなりの時間を…

最小公倍数の計算アプリ。手計算する場合の簡単な求め方も紹介。

最小公倍数を求めるための計算機アプリです。整数は、3つ以上入力することも可能です。入力する際には、それぞれの整数を空白や改行で区切ってくださ…

最大公約数の計算機。サイト上で瞬時に計算!簡単な求め方も解説。

最大公約数を求めるための計算機アプリです。整数は、3つ以上入力することも可能です。入力する際には、それぞれの整数を空白や改行で区切ってくださ…

フランス語のアルファベットの簡単キーボード。一覧から文字を入力。

フランス語のアルファベットを簡単に入力するためのオンラインアプリです。一覧表から文字を選択するだけなので、変換は不要。アクセント記号や合字に…

スペイン語のアルファベット入力キーボード。変換不要!一覧から文字を選択

スペイン語のアルファベットを簡単に入力するためのオンラインアプリです。一覧表から文字を選択するだけなので、変換は不要。逆疑問符や逆感嘆符、ア…

ロシア語のアルファベット入力キーボード。変換不要!一覧から文字を選択

ロシア語のアルファベットを簡単に入力するためのオンラインアプリです。一覧表から文字を選択するだけなので、変換は不要。打ち方が分からなくても入…

累乗・べき乗の計算機。指数が分数・小数・マイナスでもOK!

累乗とべき乗(冪乗)を簡単に計算する電卓です。数aのn乗、anを算出します。二乗や三乗を計算するときなどに便利です。なお、この計算機は、自然…

正三角形の面積・高さ・辺の長さの計算機。公式を使った求め方も紹介。

正三角形の面積・高さ・辺の長さを計算するツールです。

円の面積・直径・半径・円周の計算機。公式を使った求め方も紹介。

円の面積と円周の長さを計算するツールです。

トルコ語のアルファベットの入力ツール。トルコ文字の簡単キーボード。

トルコ語のアルファベットを入力するためのオンラインツールです。使い方は簡単で、トルコの文字を一覧から選択するだけでOK。キーボードで入力した…

ギリシャ文字への変換を簡単に!見た目と読み方の一覧からギリシャ語を入力。

ギリシャ文字を手軽に入力するためのオンラインツールです。入力したいギリシャ文字を一覧から選ぶだけなので、超簡単。キーボードで文字を変換する必…

ページ内リンクのジャンプ先がずれる原因と解決方法【HTML】

ページ内リンクのジャンプ先がずれてしまう原因と、その解決策について解説します。別ページの特定の場所にリンクを貼る場合には、ハッシュ(#)で要…

平方根(ルート)の値を求める計算機。分数もOKな電卓サイト。

平方根(ルート)の計算機は、平方根の値をサイト上でカンタンに計算できる電卓です。整数だけでなく、小数や分数の平方根にも対応しているので、幅広…