AmazonおまかせリンクWidget

wordpress logo
Creative Commons License photo credit: adria.richards

2009/08/10より、チカッパレンタルサーバーWordPressを入れて、FC2ブログより全データごと引っ越ししてきました。

お仕事で、WordpressをCMSとしてWebSiteを一つ管理していたのですが、また一つ立ち上げることになったので、個人ブログごと同じ環境にして、リソース・スキルの共有・強化を図ることにしたのです。

心機一転したら、なんか色々新しいことをしたくなって、今までまったく興味のなかった、アフリエイトを始めたりして。

で、Widget 作成のお勉強をかねて、「Amazonおまかせリンク(R) ベータ版」のwordpress版Widgetを書いてみることに。

ほとんど、こちらのサイトを参考に、というかこのサンプルコードに、Amazon のコードを挿入しただけですが。

とりさんのソフト屋さん
WordPress 2.8でウィジェット作成(1) – Hello World

すごく判りやすい説明で、簡単に作れちゃいました。
amazon-associates-widget.php

[php]
<?php
/*
Plugin Name: Amazon OmakaseLInk Widget
Plugin URI: http://nosaku.net/
Description: Amazonおまかせリンク
Author: nosaku
Version: 1.0
Author URI: http://nosaku.net/
*/

//http://soft.fpso.jp/develop/wordpress/customize/entry_2333.html

class amazon_omakase_nosaku extends WP_Widget {
//コンストラクタ クラスと同じ名称
function amazon_omakase_nosaku() {
// ウィジェットの初期設定
$widget_ops = array(‘classname’ => ‘amazon_omakase_nosaku’, ‘description’ => ‘AmazonおまかせリンクWidget’ );
$control_ops = array(‘width’ => 250, ‘height’ => 300);
$this->WP_Widget(‘amazon_omakase_nosaku’, ‘Amazonおまかせリンク’, $widget_ops, $control_ops);
}

function widget($args, $instance) {
// ウィジェットのコンテンツ出力
$instance = wp_parse_args( (array) $instance, array( ‘title’ => ”) );

$title = $instance[‘title’];
$title = apply_filters(‘widget_title’, $title);

echo $args[‘before_widget’]."\n";
echo $args[‘before_title’].$title.$args[‘after_title’]."\n";

echo ‘<script type="text/javascript">’."\n";
echo "<!–\n";
echo ‘amazon_ad_tag = "★貴方のID";’."\n";
echo ‘amazon_ad_width = "160"; amazon_ad_height = "600"; amazon_ad_logo ="hide"; amazon_ad_border = "hide";’. "\n";
echo ‘amazon_color_border = "E3E3E3"; amazon_color_text = "6E6E6E";’."\n";
echo ‘amazon_color_price = "C77575";’ . "\n";
echo ‘//–>’ ."\n" ."</script>\n";
echo ‘<script type="text/javascript" src="http://www.assoc-amazon.jp/s/ads.js"></script>’."\n";

echo $args[‘after_widget’]."\n";
}

function update($new_instance, $old_instance) {
// 保存したときのウィジェットのオプションを処理
// $new_instanceには入力データが連想配列で引き渡される
// $old_instanceにはそれまでの保存されていたオプション値が連想配列で引き渡される。
// 最後に連想配列でオプション値を返す。
$instance[‘title’] = strip_tags($new_instance[‘title’]);

//エラーチェック
if (!$instance[‘title’]) {
//空白の時は、元に戻して、エラー表示
$instance[‘title’] = strip_tags($old_instance[‘title’]);
$this->m_error = ‘<span style="color:#f00;">タイトルが空白です。元に戻します。</span>’;
}

return $instance;
}
function form($instance) {
// 管理画面のウィジェットに出力するフォームを記述
// $instanceには保存したオプションが連想配列で引き渡される。

//設定が保存されていない場合、デフォルトを設定
$instance = wp_parse_args( (array) $instance, array( ‘title’ => ”) );
//HTMLタグを削除
$title = strip_tags($instance[‘title’]);

//出力
$titlename = $this->get_field_name(‘title’);
$titleid = $this->get_field_id(‘title’);
echo ‘<label for="’.$titleid.’">タイトル</label>’;
echo ‘<input type="text" name="’.$titlename.’" id="’.$titleid.’" value="’.$title.’" />’;
echo ‘</p>’;

}
}
//MyWidgetInit関数
function MyWidgetInit() {
//ウィジェットのクラス名を登録
register_widget(‘amazon_omakase_nosaku’);
}
//widgets_initアクション時にMyWidgetInit関数を実行
add_action(‘widgets_init’, ‘MyWidgetInit’);

?>
[/php]

プラグイン形式にして組み込めるようにしました。
Amazonのコードのパラメータをfomで編集できるようにすれば汎用性がでるでしょうが、こんなソースを公開してもしょうがないですね。

Amazonおまかせリンク(R)を使ってみようかなと思い立って、写真しか貼ってないブログじゃ「常にあなたのWebサイトの内容に沿った商品を自動的に選択して表示します。」なんてことにはならないんじゃないか?なにか文章を書いておかないと!

って意味だけでこのエントリー書きました。

アフリエイトで儲けてウハウハだ! 😆


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です