PR(記事内にアフィリエイト広告が含まれています)
Wordpress

カスタムアフィリエイトリンクのプラグイン

上手にできました! Wordpress

はじめに

WordPress用の自作プラグインです。

AmazonのAPIを使わずに、Cocoonみたいなアフィリエイトリンクを、似たようなショートコードで簡単に表示させる事ができます。

[affiliate_link asin=”B091YNNMPT” kw=”ラブプラス EVERY 公式アートブック”]

こういったショートコードを貼り付けると、下記のような画像・ボタンつきのリンクになります。

なお内部仕様的な難しさで、楽天だけはアフィリエイト経由のURLではなく、単純な検索になります。

クラシックエディタでのみ動作確認をしています。

免責事項

本プラグインは無保証で提供されます。本プラグインの使用によって生じたいかなる損害についても、作者は一切の責任を負いません。利用は自己責任で行ってください。

各アフィリエイトサービス(Amazon、楽天、Yahoo!、DMM、メルカリ等)の利用規約を遵守してご利用ください。規約違反による問題について、作者は責任を負いません。

使用前に必ずバックアップを取得し、テスト環境で動作確認を行ってください。

作ったきっかけ

少し前まではAmazonアソシエイトツールバーで画像付きリンクを出せてたんですが、2023年くらいに仕様変更で使えなくなってました。

それで最近はCocoonに標準で備わってる機能を使い、AmazonのAPIを通してショートコードでアフィリエイトリンクを出していたんですが、11/11くらいからAPIが使えずにエラーになり続けていました。

切り分けのためにAmaQuickも使ってみたところ、このようなエラーになってしまいます。

APIエラー

APIエラー

以前は無制限にAmazonのAPI使えてたんですが、悪い人が居たせいでいろいろと制限が加えられ、30日以内にアフィリエイト経由での売上がないと使えない、みたいな仕様になってました(最近また仕様が厳しくなったらしいという噂ですが、公式情報を見つけられませんでした)。

自分の経験からの予想ですが、一度注文した高額商品をキャンセルした場合はマイナス売上になってしまい、見た目は売上が毎月あっても内部的には未達成扱いになってAPIが使えない、みたいな状態ではないでしょうか。このあたり以前APIサポートに質問しましたが、まともな回答を得られる状況ではないのであくまで妄想です。こう思った根拠は、以前エラーになった時は一ヶ月くらい経ったらまた使えるようになってたからです。

使えないのも困りましたが、使えてる状態でも困り事がありました。AmazonAPIはキャッシュを24時間以上保持してはいけないというルールがあるので、自分のサイトのような規模だとページ表示するたびにキャッシュなしでの表示になってしまいます。その結果、1ページに10個くらいリンク貼ってたらたいていエラーになって、リロードしないとちゃんと内容が完全に表示されなかったりするのです。

自分の使い方として、価格といったリアルタイムな情報は不要で、画像とリンクついてたら良いって程度です。これらの情報であれば基本的にAPI不要で取得できるので、キャッシュ保持とか不要で軽快なプラグインを、Claudeに作ってもらいました。

プラグイン

custom-affiliate-plugin.zip

プラグイン画面で、上記zipをアップロードしてインストールし、有効にしてください。

そうするとWordpressの左サイドメニューの「設定」に「アフィリエイト設定」という項目が出てくるのでクリック。

設定画面が出てくるので、Amazonなどのアフィリエイト用項目を入力してください。

各種ボタンは設定画面のチェックボックスがついたものだけ出てきますが、ショートコードで個別に非表示にすることもできます。

詳しい内容は設定画面の説明を読んでください。

なお前述した通り楽天だけは仕様的に難しかったので、アフィリエイトなしの通常の検索URLとなっています。

もしCSSを修正したい場合、zip内のPHPファイル内に記載されている、プラグインのCSSを直接修正してみてください(WordPressの設定画面で追加CSSを記載しても競合する可能性があるからです)。

ブックマークレット

ショートコードを簡単に作れるように、ブックマークレットを用意しました。

ブラウザで任意のページをブックマークして、URLを下記に編集しなおしてください。

javascript:(function(){
var asin=document.getElementById('ASIN')?.value||document.querySelector("[data-asin]")?.getAttribute("data-asin")||location.href.match(/\/dp\/([A-Z0-9]{10})/)?.[1];
var title=document.querySelector("#productTitle")?.innerText.trim();
if(!asin||!title){
alert("ASIN または商品名が見つかりません");return;
}
var shortcode='[affiliate_link asin="'+asin+'" kw="'+title+'"]';
navigator.clipboard.writeText(shortcode);
alert("ショートコードをコピーしました:\n"+shortcode);
})();

Amazonの個別商品ページを表示した状態で、ブックマークレットをクリックすると、ショートコードがコピーされるので、それをそのままWordpressの投稿画面に貼り付ければOKです。

Cocoonからの移行

[amazon asin=”B091YNNMPT” kw=”ラブプラス EVERY 公式アートブック”]

[affiliate_link asin=”B091YNNMPT” kw=”ラブプラス EVERY 公式アートブック”]

このように赤字部分の記載が違うだけなので、Search Regexプラグインを使用して一括置換するのが楽です。

「ツール」→「Search Regex」を開く

検索: [amazon
置換: [affiliate_link
Source: Post content

「Replace & Save」をクリック

この操作自体は簡単ですが間違えると量によっては大変なので、事前にバックアップするなり、少しずつテストして問題なければ一括置換、みたいに進めるのが無難ですね。

余談:楽天のアフィリエイトの概要

Cocoonでは下記の設定をするだけで、アフィリエイト用のリンクボタンを表示してくれます。

楽天アフィリエイトID: 17b592bd.218bc1d1… の形式
楽天アプリケーションID: 楽天APIを使うためのID

この形式のIDは、Cocoonが内部で楽天APIを使って動的にリンクを生成する際に使われるもので、単純なURL生成では使えません。

もしもアフィリエイト経由も検討しましたが、こちらも動的生成しててもしも画面内で操作した結果でてくるURLはかなり複雑なので、今回はアフィリエイトつきのURLを生成するのは諦めました。

おわりに

これでAPIのキャッシュとか意識せず、画像付きのリンクを容易に貼り付けられるようになったかと思います。

著作権フリーなので(というか作ってくれたのはClaude)、プラグインの改修はご自由にどうぞ。むしろ自分の代わりにGitHub等で共有してもらって、どんどん有志の方々の手でもっと便利になるように作り変えていっても問題ないです。

コメント

タイトルとURLをコピーしました