カスタムフィールドの値を表示する

カスタムフィールドの値を表示してオリジナルページを作成します。
投稿ページのテンプレートファイルは基本的に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)で表示可能になりますのでこちらを使用していきます。

テキストの表示

<?php echo the_field('c_address', $post->ID); ?>

数値の表示

数値は桁区切りを入れたいので以下のようにしました。

<?php $temp = get_field('c_autoprice'); echo $temp != null ? number_format($temp) : $temp; ?>

価格がnullの場合がありますので値があった場合だけnumber_format関数により桁区切りを挿入します。

真偽の表示

Yes/Noの表示です。三項演算子を使います。

<?php if (get_field('c_rental')) { echo "あり"; } else { echo "なし"; } ?>

このような感じで各キャンプ場の個別ページを表示します。

<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

コメントを残す

メールアドレスが公開されることはありません。