SANGOにはたくさんの種類のボタンが用意されています。これらのボタンは、リンクタグに対して、クラス名を追加することで装飾が施されています。

しかし、一部のアフィリエイトサービスではリンクタグの改変が禁止されている場合があります。もし、アフィリエイトリンクを触れることなく、SANGOデフォルトのボタンを使いたい場合には、どうすれば良いのでしょうか。
目次
SANGOでアフィリエイトリンクを改変することなくボタンを利用する方法
この方法を使うには、少しだけ準備(カスタマイズ)が必要になります。このカスタマイズを行っても、デフォルトのボタンには影響はなく、これまで通りボタンは挿入できます。
はじめる前に:子テーマを導入しておくのがおすすめ
子テーマを導入しておくと、今後テーマのアップデートがあった際にカスタマイズ内容が上書きされてしまう心配がなくなります。

また、カスタマイズの前に、ファイルのバックアップを取っておきましょう。

準備1:functions.phpにコードを貼り付け
アフィリエイトボタン用の新しいショートコードを使用できるようにするために、子テーマのfunctions.phpに以下のコードを貼り付けます。
/*アフィリエイト用ボタン*/
add_shortcode('afbtn','sng_insert_btn_af');
function sng_insert_btn_af($atts , $content = null) {
if(isset($atts) && $content) {
$href = (isset($atts['href'])) ? 'href="'.esc_url($atts['href']).'"' : null;
$class = (isset($atts['class'])) ? esc_attr($atts['class']) : null;
$target = '';
if(isset($atts['target'])) {
$target = ($atts['target'] == "_blank") ? ' target="_blank"' : "";
}
$rel = '';
if(isset($atts['rel'])) {
$rel = ($atts['rel'] == "nofollow") ? ' rel="nofollow"' : "";
}
$yoko = '';
if(isset($atts['0'])) {
$yoko = ($atts['0'] == "yoko") ? "yoko" : null;
}
if($class) {
$output = (!$yoko) ? '<p>' : '';
$output .= <<<EOF
<div class="btn2 {$class}">{$content}</div>
EOF;
if(!$yoko) {$output .= '</p>';}
return $output;
}//end if class
}//end if atts && content
}
/*END アフィリエイト用ボタン*/
準備2:style.cssに専用のCSSを貼り付け
続いて、子テーマのstyle.cssに以下のCSSをまるっと貼り付けます。なるべく軽くするために、余白や改行は消しています。
/*アフィリエイトボタン用CSS*/
#inner-content .btn2{padding:0;margin:.5em .5em .5em 0}#inner-content .btn2 a{display:block;padding:.4em .8em}#inner-content .btn2 a:hover{display:block;text-decoration:none}.btn2.btntext a {color: inherit;}#inner-content .btn2.raised a{color:#fff}.btn2.flat1 a{color:#00bcd4}.btn2.flat1 a:hover{color:#fff}.btn2.flat2 a{color:#67c5ff}.btn2.flat2 a:hover{color:#fff}.btn2.flat3 a,.btn2.flat4 a,.btn2.flat5 a{color:#67c5ff}.btn2.flat4 a:hover{color:#679efd}.btn2.flat5 a:hover{color:#fff}.btn2.flat6 a{color:#668ad8}.btn2.flat6 a:hover{color:#fff}.btn2.flat7 a{color:#67c5ff}.btn2.flat8 a{color:#00bcd4}.btn2.flat9 a{color:#fff}.btn2.flat10 a{color:#ffa000}.btn2.flat10 a:hover{color:#fff}.btn2.flat11 a{color:#668ad8}.btn2.cubic1 a,.btn2.grad1 a,.btn2.grad2 a,.btn2.grad3 a,.btn2.grad4 a{color:#fff}#inner-content .btn2.emboss a{color:rgba(0,0,0,.4)}.btn2.text3d.blue-bc a{color:#4f9df4}.btn2.text3d.red-bc a{color:#f88080}.btn2.text3d.green-bc a{color:#90d581}.btn2.cubic2 a,.btn2.cubic3 a{color:#fff}.btn2 img{visibility:hidden;display:block;width:0;height:0;}/*END アフィリエイトボタン用CSS*/
以上で準備は完了です。それではアフィリエイトリンクをボタン化してみましょう。
挿入手順1:投稿編集画面でアフィリエイトリンクを貼り付け
テキストエディタを開き、いつも通りアフィリエイトリンクを挿入します。
挿入手順2:アフィリエイトリンクをショートコード「afbtn」ではさむ
次にそのアフィリエイトリンクを、新しいボタンのショートコードではさみます。新しいショートコード名はafbtn
。通常のボタンショートコード(btn
)とボタン種類の指定の仕方は全く同じです。
[afbtn class="ボタン種類"]
ここにアフィリエイトリンク
[/afbtn]
例えば、メインカラーを背景色とした浮き出しボタンを使いたいときは、以下のようにします。
[afbtn class="raised main-bc strong"]
ここにアフィリエイトリンク
[/afbtn]
まとめ
まとめると以下のようになります。
- ショートコード名は
btn
ではなくafbtn
に - ボタン種類の指定の仕方は、どちらも同じ
- afbtnショートコードの中にアフィリエイトリンクを入れる
ボタン挿入例
下のようにテキストエディタで指定すると…
プレビューで見ると、下のように表示されます。
正直言って、少し面倒ですね・・・。通常のボタンはこれまで通り使えるので、改変禁止のアフィリエイトリンクをどうしてもボタンにしたいときに上の方法を活用すれば良いかと思います。
「アフィリエイトリンクを改変せずにボタンを使う方法」を読んでカスタマイズ済みです。
回答を見るボタンリンクの横幅を100%にするCSSを追加したところ、普通のボタンリンクは横幅が100%になったのですが、アフィリエイトリンク用にカスタマイズしたボタンリンクには適用されませんでした。
解決策を教えていただきたいです。よろしくお願いします。
サイト非公開でお願いします。
回答を見る7月11日の質問者様と同様に、スマホから見るとボタンの下に無駄な余白が生じてしまいます。
CSSとPHPはコピペしただけです。
いつもお世話になっております
アフィリエイトリンクを改変せず、ボタンを横並び2列にしたい場合はどうしたらいいでしょうか?
回答を見るいつもお世話になっております。
こちらのページを参考にアフィリエイトリンク・ボタンを作成したのですが、パソコンではリンク先に飛び、スマホだとリンク先に飛びませんでした。
テキストリンクの場合だと、スマホからでもリンク先に飛ぶことができます。
CSSとかの影響でしょうか?
お忙しいところ恐縮ですがよろしくお願いいたします。
回答を見るいつもお世話になっております。
アフィリエイトリンクですが、文字や画像に設定する場合は通常の[link]ボタンから挿入で機能しますよね?
ASP画像バナーの場合も、テキストにコードコピペで大丈夫ですよね?
ちょっと気になりましたので、確認させていただきました。
どうぞよろしくお願いいたします。
回答を見るお世話になっております。
上の方で質問されている方と恐らく同じ疑問なのですが、上記の通りに実行した結果、ボタン化されたアフィリエイトリンクのテキストが白くならずに、青の通常サイズの文字のリンクとなってしまいます。
上で質問された方は、解決したようですが、私はイマイチ解決策が分からず、手詰まりとなってしまいましたので、お忙しいとは思いますが、解決策をご教授ください。
回答を見る