Day6"カスタムフィールドをマスターせよ"

本日も無事生放送が終了しました。

今日は夕方頃ひらめき、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

require_once("XML/RSS.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

}

?>

PHPPEARライブラリを使っています。コアサーバーにはインストール済みなので気軽に使ってしまいました。

食べた物をキーワードとしてURLエンコードして検索RSSURLを生成します。

返ってきたURLをYAHOO!ショッピングアフィリエイトURLになるようにリンクURLを合成します。

vcptn=shpg%2Fp%2Ffuc0.3eBMdxzfZxNTdfnn2U-

パラメーターの赤い部分が自分自身のYAHOO!アフィリエイトIDです。

(たぶん、これで大丈夫だと思いますが、検証はしていませんが、アフィリエイトクッキーが発行されているかどうかブラウザで確認すればOKです)

cookieがyahoo.co.jpドメインで発行されていることを確認しました。

 

コメント

  1. 興味深く拝見させていただきました。
    ワードプレスをいじり始めたばかりなのですが、
    カスタムフィールドの使い方がすごくわかりやすかったです。
    そこで、ひとつ質問なのですが、
    カスタムフィールドで指定した画像のサムネイルとテキストを
    TOPページで新着5件というように表示することはできますか?
    フィードさせる感じです。

  2. でんえもんさん
    コメントありがとうございます。
    > TOPページで新着5件というように表示することはできますか?
    やろうと思えばできないことは無いと思いますが、
    そのやり方を動作確認を含めて調べてお答えすることは時間が無くて出来ません。
    ごめんなさい。
    一度検索して探してみられてはいかがでしょうか?

  3. ご回答ありがとうございます。
    いろいろ調べたり、いろんな人に聞いているのですが、
    お答頂けなくて。。いただいても少し的が外れていたり。
    そこで、ワードプレスを詳しくご説明されいる
    こちらにお邪魔させていただいたのですが。
    もうしこし勉強してみます。

  4. を入れたのですが、
    なぜか中身が表示されません。
    single.phpに入れました。
    記述に間違いがないと思うのですが、
    表示されない原因等が検討もつきません。
    このような事例になった方はおられますでしょうか?

  5. でんえもんさん
    > このような事例になった方はおられますでしょうか?
    ここでこのようにコメントされましても、コメントを見る人がただでさえ少ない上に、これを試されている人はかなり少ないと予想されるので、回答はつかないと思いますよ。
    conf-post.iniとかファイルを修正してアップしていますか?
    そもそも手順に間違いが無いかご確認ください。
    たぶん、ここに書いてある質問文を読んでも、どういう状況になっているか、single.phpの中がどうなっているか、とか状況がまったくわからないので、回答しようが無いです(他のサイトでもそうではないでしょうか)。
    おそらく一番良いのはWordPress勉強会とかに参加されて、WordPressに詳しい仲間を作って、ノートPCを広げてアドバイスもらったりするほうが、まだ早そうな気がします。
    ボクもAPI(商品検索アフィリエイト等)勉強会とか主催している経験上、オンライン上だけではできないことが、「その場で見てその場で解決すること」なんだと思います。
    ネット上だけでなく、そういったところに出かけてみてはいかがでしょうか。

  6. wackeyさんへ
    ご回答ありがとうございます。
    アドバイスありがとうございます。
    conf-post.iniは修正しています。
    いろいろな、情報を見つけてsnsや勉強会なども検索しているのですが遠方のところが多く、最近の勉強会なども少ないようですので、
    なかなか参加できない感じです。
    僕も、オフラインで勉強したいのですが、
    みなさんなかなか都合がつかないようですので、
    ネット上で情報収集しているわけなのです。
    wackeyさんのおっしゃることが身にしみます。
    コメント欄使ってしまって申し訳ありませんでした。

  7. 「single.php」にカスタムフィードのコマンドを記入しても記事の上や下に表示されて、記事中に表示させることができません。方法をご存知でしょうか?
    例:
    ID,’textfield_namge’,TRUE) ): ?>
    商品名:ID,’textfield_namge’,TRUE); ?>

  8. ペット情報.JPさん>
    コメントありがとうございます。
    3年前の記事でWordPress本体(確かバージョン2.7)やプラグインも大幅にバージョンアップしていて、私自身もこの記事を書いていた時期のやり方については忘れてしまっています。
    また投稿いただいたコードがWordPressで処理されてしまって不完全なコードになっているので、どのようなコードかわかりかねます。半角記号を全角にして投稿していただくとHTMLのタグなどの特殊記号が削除されずに済みますので、それで見せて頂いた方が助かります。
    記事中の任意の場所に表示したい、ということでしょうか。
    カスタムフィールドでも良いのですが、簡単なプラグインを作ってショートコードでWordPress文章中に入れるほうが意外と近道かと思います。

コメントを残す

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