本日も無事生放送が終了しました。
今日は夕方頃ひらめき、20時から突貫工事でカスタムフィールドを応用した事例を作成しました。
動画アーカイブと関連ソースを公開します。
使用したプラグイン
Custom Field GUI Utility - WordPress プラグイン - かたつむりくんのWWW
最新版ダウンロードのバージョン1.0を使用しました。
※写真のアップロードからのURL入力がうまくいかなかったのですが、画像URLをテキストで打てば、なんとか使えました。
プラグインの設定
使用するカスタムフィールドをあらかじめ設定ファイルに書き込んでおきます(フィールド名を英数字半角で設定しておく)
※今回の設定例
conf-common.ini内は空っぽにする
conf-post.iniを下記のように記述した。それぞれの項目についての説明はプラグインダウンロードページの解説を読んでください。
[shop_post]
fieldname = 店名
type = textfield
size = 35
sample = 店の名前を全角17文字以内で入力
[shopphoto_post]
fieldname = 店内写真
idname = shopphoto_idname_post
type = imagefield
size = 70
sample = 店内の写真をアップロードします
[tabetamono_post]
fieldname = 食べた物
type = textfield
size = 35
sample = 食べた物の名前を全角17文字以内で入力
[kinen_post]
fieldname = 禁煙席
type = radio
value = あり # なし
default = あり
sample = 禁煙席の有無について入力します
[shopmap_post]
fieldname = お店の地図
type = textarea
rows = 4
cols = 40
sample = Googleマップの地図をコピペ
[chiiki_post]
fieldname = 地域
type = textfield
size = 35
sample = 地域を17文字以内で入力
カスタムフィールドを表示させるデザインテーマ内のsingle.phpに下記のように書き込んだ(シャレじゃないですよ)。
お店情報の表は
<table border="1" cellpadding="4px">
<tr>
<td bgcolor="#EFEFEF" width="150px">お店の名前</td>
<td width="330px"><?php echo post_custom('shop_post'); ?></td>
</tr>
<tr>
<td bgcolor="#EFEFEF" width="150px">食べたもの</td>
<td width="330px"><?php echo post_custom('tabetamono_post'); ?></td>
</tr>
<tr>
<td bgcolor="#EFEFEF">お店の写真</td>
<td><img src="<?php echo post_custom('shopphoto_post'); ?>" alt="" /></td>
</tr>
<tr>
<td bgcolor="#EFEFEF">禁煙席</td>
<td><?php echo post_custom('kinen_post'); ?></td>
</tr>
<tr>
<td bgcolor="#EFEFEF">お店の地域</td>
<td><?php echo post_custom('chiiki_post'); ?><br/><a href="http://web.travel.rakuten.co.jp/portal/my/tabimado_search.main?f_max=10&f_format=long&f_query=<?php $chiiki = post_custom('chiiki_post');$chiikisjis = urlencode(mb_convert_encoding($chiiki, "SJIS","utf-8"));echo $chiikisjis; ?>"><?php echo post_custom('chiiki_post'); ?>のホテルを探す</a></td>
</tr>
</table>
お店の地域のテキスト文字をシフトJISに変換してURLエンコードした文字列を楽天トラベルの検索パラメーターとしてリンクを生成しています。
お店の地図はGoogleマップの<iframe~のタグを管理画面で入力してそれを表示させています。
<strong>お店の地図</strong><br />
<?php echo post_custom('shopmap_post'); ?>
食べたものを検索文字列としてYAHOO!ショッピング内を検索し、売れている順番で出力します。
<?php
$xmlrss = new XML_RSS("http://shopping.yahoo.co.jp/search/rss?p=" . urlencode(post_custom('tabetamono_post')) . "&X=4");
$xmlrss->parse();
$info = $xmlrss->getChannelInfo();
$info['title'] = mb_convert_encoding($info['title'], 'UTF-8', 'auto');
$info['description'] = mb_convert_encoding($info['description'], 'UTF-8', 'auto');
?>
<H4><A href="<?=$info['link']?>"><?=$info['title']?></A>売れ筋ランキングベスト20!</H4>
<FONT size="2"><UL>
<?php
foreach ($xmlrss->getItems() as $item) {
$title = mb_convert_encoding($item['title'], 'UTF-8', 'auto');
?>
<LI><A href="http://atq.ck.valuecommerce.com/servlet/atq/referral?sid=2219441&pid=877212733&vcptn=shpg%2Fp%2Ffuc0.3eBMdxzfZxNTdfnn2U-&vc_url=<?php echo urlencode($item['link']);?>"><?=$title?></A><br />
<?php echo $item['description']; ?></LI>
<?php
}
?>
PHPのPEARライブラリを使っています。コアサーバーにはインストール済みなので気軽に使ってしまいました。
食べた物をキーワードとしてURLエンコードして検索RSSURLを生成します。
返ってきたURLをYAHOO!ショッピングアフィリエイトURLになるようにリンクURLを合成します。
vcptn=shpg%2Fp%2Ffuc0.3eBMdxzfZxNTdfnn2U-
パラメーターの赤い部分が自分自身のYAHOO!アフィリエイトIDです。
(たぶん、これで大丈夫だと思いますが、検証はしていませんが、アフィリエイトクッキーが発行されているかどうかブラウザで確認すればOKです)
cookieがyahoo.co.jpドメインで発行されていることを確認しました。