サポート » プラグイン » Smart Custom Fieldsで作ったグループの中で入力のない項目を非表示にしたい

  • 解決済 nakaguma

    (@nakaguma)


    「Smart Custom Fields」を使用して、「商品名」「価格」「コメント」の3つのカスタムフィールドをグルーピングし、ループ表示をしております。

    ┌──────────────┐
    │商品名    │コメント  │
    │(1,080円) │      │
    └──────────────┘
    │商品名    │コメント  │
    │       │      │
    └──────────────┘
    │商品名    │コメント  │
    │(5,400円) │      │
    └──────────────┘

    しかし、上記のように価格の入力のないものには、(円)の文字列も表示させたくないので、価格の入力のないものは非表示にするifを追加しました。

    <table>
    <?php
        $repeat_group = SCF::get( 'goods' );
        foreach ( $repeat_group as $fields ) {
    ?>
    	<tr>
    		<th><?php echo esc_html( $fields['goods-name'] ); ?>
    		<?php if(get_post_meta($post->ID,'goods-price',true)): ?>
    		<span>(<?php echo number_format(esc_html( $fields['goods-price'] )); ?>円)</span>
    		<?php endif; ?>
    		</th>
    		<td><?php echo esc_html( $fields['goods-comment'] ); ?></td>
    	</tr>
    <?php } ?>
    </table>

    …が、ループの一つ目の入力状態だけが反映され、一つ目に入力がなければ他も全部非表示、一つ目に入力があれば他も全部表示、となってしまいます。。。

    どうすればそれぞれの入力状態が反映できるのか、是非お知恵をお借りできればと思います。
    ※そもそも繰り返しグループの中で、このような条件分岐は無理でしたら、ご指摘いただけたらと思います。

    どうぞよろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    get_post_meta を指定している if の条件を

    if ( '' != $fields['goods-price'] ) ) :

    では、いかがでしょう。

    トピック投稿者 nakaguma

    (@nakaguma)

    jim912様

    早速ありがとうございました!
    教えていただきました書き方で、以下のように修正してみたところ、希望どおりの表示ができました!

    <?php if ( '' != $fields['goods-price']): ?>

    こんなに早く解決できて、本当に助かりました!ありがとうございます。
    自分でももっと勉強しなくては…と思いました。
    これで解決済みとさせていただきます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「Smart Custom Fieldsで作ったグループの中で入力のない項目を非表示にしたい」には新たに返信することはできません。