カスタムフィールドに値があった場合にだけ表示する場合

single.phpなどで入力されたカスタムフィールドを表示させる場合には取りあえず下のコードコピペして確認してみましょう。

カスタムフィールドを表示させる

例えばitemname(商品名)、price(価格)、color(カラーバリエーション)というカスタムフィールドのそれぞれの値を表示させたい時はこちらのコードを記述すればOKです。

単純に表示する場合

<?php if (have_posts()) : while (have_posts()) : the_post();
$itemname = post_custom('itemname'); //itemnameというカスタムフィールドを取得
$price = post_custom('price'); //priceというカスタムフィールドを取得
$color = post_custom('color'); //colorというカスタムフィールドを取得
?>
<section>
<div>
<?php $customfield = get_post_meta($post->ID, 'itemname', true); ?>
<p><?php echo $itemname; ?></p>
</div>
<div>
<?php $customfield = get_post_meta($post->ID, 'price', true); ?>
<p><?php echo $price; ?></p>
</div>
<div>
<?php $customfield = get_post_meta($post->ID, 'color', true); ?>
<p><?php echo $color; ?></p>
</div>
</section>
<?php endwhile; endif; ?>

カスタムフィールドに値があった場合にだけ表示する場合

こちらは値が入っているかどうかを判定する条件分岐です。これを使えばtable内のtdなどで表示する際に、「カスタムフィールドの値がない時はtdごと表示させない」などができるようになります。

<?php if (have_posts()) : while (have_posts()) : the_post();
$price = post_custom('price'); //priceというカスタムフィールドを取得
?>
<section>
<div>
<?php $customfield = get_post_meta($post->ID, 'price', true); ?>
<?php if( empty($customfield) ): ?>
<!-- priceというカスタムフィールドが空の場合に表示させるコードをここに書く(何も表示しない場合は何も書かなくてOK) -->
<?php else: ?>
<p><?php echo $price; ?></p> <!-- priceというカスタムフィールドが空じゃない場合は、←の内容が表示される -->
<?php endif; ?>
</div>
</section>
<?php endwhile; endif; ?>

有限会社インセンス 神保部長

コメントを残す

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

コメントする