HugoでAmazonのアフェリエイトリンクをいい感じに表示する
はじめに
負けヒロインが多すぎる! というアニメを見始めました。 舞台が以前住んでいた愛知県 豊田の近く豊橋市ということもありチラホラ見覚えがある風景がある気がします。 とりあえずヒロインが可愛いので好きです。
ということで、上記のようなアフェリエイトリンクをHugoとShortcodeから呼び出す方法について記載していきます。
ShortCodeの実装
Markdownファイルから呼び出すためのShortcodeを書いていきましょう。 こちらのサイト様の内容を下に書いたのがこちらです。
Hugoでわりと楽してわりとかっこよくAmazon商品紹介をする
ほとんど丸パクリで申し訳ない。画像リンクは古そうだったので修正してあります。
CSSファイルを読み込むようにしておきました。 ショートリンク呼び出すたびにCSSファイルを呼ぶことになりクソほど無駄ではありますがまぁ動くのでよいでしょう。ローカルにあるテキストファイルだしさほど影響ないでしょう。
<link rel="stylesheet" href="/css/amazon.css">
{{- $tag := .Site.Params.amazonJpAffiliate }}
{{- $asin := .Get "asin" -}}
{{- $title := .Get "title" -}}
<div class="amazon-widget">
<a href="https://www.amazon.co.jp/gp/product/{{ $asin }}/?tag={{ $tag }}"></a>
<div class="amazon-widget-img">
<img src="http://images.amazon.com/images/P/{{ $asin }}.09_SL110_.jpg" />
</div>
<div class="amazon-widget-info">
<span class="amazon-widget-title">
{{ $title }}
</span>
<span class="amazon-widget-via">
<img src="https://www.amazon.co.jp/favicon.ico" />
amazon.co.jp
</span>
</div>
</div>
config.toml
Paramsも下記のように追加します。 AmazonのアフェリエイトIDを設定しておくことでShortcodeから呼び出すようにしています。
[Params]
amazonJpAffiliate = "XXXXXX"
css
css/amazon.cssというファイルを作り以下を記載します。
.amazon-widget {
margin: 2rem 0;
max-width: 480px;
position: relative;
}
.amazon-widget a {
position: absolute;
top:0;
left:0;
height: 100%;
width: 100%;
}
.amazon-widget-img {
border: 1px solid #E1E8ED;
border-radius: 15px 15px 0 0;
text-align: center;
}
.amazon-widget-img img {
border: none;
margin: 0 auto;
max-height: 200px;
padding: 16px;
}
.amazon-widget-info {
border-right: 1px solid #E1E8ED;
border-bottom: 1px solid #E1E8ED;
border-left: 1px solid #E1E8ED;
padding:5px 10px 10px 10px;
border-radius:0 0 15px 15px;
}
.amazon-widget:hover .amazon-widget-info {
background-color: #E1E8ED;
}
.amazon-widget-title {
font-weight: bold;
display:block;
}
.amazon-widget-via {
color: #aaa;
}
.amazon-widget-via img {
border: none;
width: 18px;
height: 18px;
margin: 0;
padding: 0;
display: inline;
vertical-align: text-bottom;
}
呼び出し方
ブログ記事のmarkdownで呼び出したい位置に下記を挿入します。
ASINにいれるのはURLから取る場合はこの部分です。
登録情報にも書いてあるのでどちらか引用してもよいです。
タイトルは取得できないので手書きするようにしてください。 画像はASINから取得できるのでやっています。
VSCodeのスニペットに追加
VSCodeで記事を書いている人はSnippetに登録しておくと便利です。
Ctrl+Pを押して、Snippetのコンフィグを開きます。
私の場合はこのような感じで登録しておきました。 amazon と打ち込んでCtrl+Spaceを押すとShortcodeが展開されて便利です。
結果
過去の記事ですが、ビルドして公開するとこのように画像とリンクが取得できています。
まとめ
アフェリエイトリンクを作って貼れるようになりました。 色んな商品を紹介してお小遣いを稼ぎ、稼いだお金を株に投資していきたいものです。
めっちゃアクセス数あるブログじゃないと、Amazonアフェリエイト儲からないんですよね。 皆さんぜひ、当方のブログから商品をじゃんじゃん購入してくださいね!よろしくお願いします!!!