カスタムフィールドの値を表示してオリジナルページを作成します。
投稿ページのテンプレートファイルは基本的にsingle.phpとなります。
今回はカスタム投稿タイプのページを作りますのでsingle.phpをコピーしてsingle-camp.phpとしました。
これで投稿タイプがcampの投稿ページはsingle-camp.phpがテンプレートとなります。
カスタムフィールドの出力
カスタムフィールドはget_post_meta($post_id, $key, $single)で表示できます。
引数は記事ID、表示項目名、値の受け取り方(true or false)です。
ですがAdvanced Custom Fieldsプラグインを使用している場合the_field($key, $post_id)で表示可能になりますのでこちらを使用していきます。
テキストの表示
1 |
<?php echo the_field('c_address', $post->ID); ?> |
数値の表示
数値は桁区切りを入れたいので以下のようにしました。
1 |
<?php $temp = get_field('c_autoprice'); echo $temp != null ? number_format($temp) : $temp; ?> |
価格がnullの場合がありますので値があった場合だけnumber_format関数により桁区切りを挿入します。
真偽の表示
Yes/Noの表示です。三項演算子を使います。
1 |
<?php if (get_field('c_rental')) { echo "あり"; } else { echo "なし"; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
<div style="display:table;"> <div style="display:table-cell;vertical-align:top;padding-right:30px;"> 施設データ<br/> <table> <tr> <td>住所</td> <td><?php echo the_field('c_address', $post->ID); ?></td> </tr> <tr> <td>電話番号</td> <td><?php echo the_field('c_tel', $post->ID); ?></td> </tr> <tr> <td>ホームページ</td> <td><a href="<?php echo the_field('c_hp', $post->ID); ?>" target="_blank"><?php echo the_field('c_hp', $post->ID); ?></a></td> </tr> <tr> <td>AC電源付きサイト</td> <td><?php $temp = get_field('c_autoprice'); echo $temp != null ? number_format($temp) : $temp; ?></td> </tr> <tr> <td>一般サイト</td> <td><?php $temp = get_field('c_tentprice'); echo $temp != null ? number_format($temp) : $temp; ?></td> </tr> <tr> <td>入場料</td> <td><?php $temp = get_field('c_enterprice'); echo $temp != null ? number_format($temp) : $temp; ?></td> </tr> <tr> <td>レンタル</td> <td><?php if (get_field('c_rental')) { echo "あり"; } else { echo "なし"; } ?></td> </tr> <tr> <td>シャワー</td> <td><?php if (get_field('c_shower')) { echo "あり"; } else { echo "なし"; } ?></td> </tr> <tr> <td>BBQのみ</td> <td><?php if (get_field('c_bbq')) { echo "可"; } else { echo "不可"; } ?></td> </tr> <tr> <td>ネット予約</td> <td><?php if (get_field('c_netreserve')) { echo "可"; } else { echo "不可"; } ?></td> </tr> </table> ※複数価格がある場合、最安値を表示しています。 </div> <div style="display:table-cell;"> 地図<br/> <iframe src="https://www.google.com/maps/embed?pb=<?php echo the_field('c_map', $post->ID); ?>" width="400" height="300" frameborder="0" style="border:0" allowfullscreen></iframe> </div> |
カスタム投稿タイプの投稿ページが完成しました。
wordpressで価格比較サイトを作ろう
第1回 ローカルテスト環境の構築
第2回 投稿ページの作成
第3回 並べ替え可能なアーカイブページの作成
第4回 カスタムフィールドの項目で記事を絞り込む
第5回 カスタムフィールドの値を表示する
第6回 口コミの追加
最終回 テスト環境から本番環境へ移行
スポンサーサイト
アフィリエイトはエーハチネット
ドメイン取るならお名前.com