繰り返し実行したり、並んでいる順番に数値を出力したり、、、という感じでしょうか。書き方がイマイチわかりません。
- custom field suiteを使用しています。
- メニューの「商品名・温・冷・値段」をカスタムフィールドで編集できるようになっています。
- セットメニューの場合フィールドの名前は、「商品名:s-name1、s-name2、s-name3...」「温:s-hot1,s-hot2,s-hot3...」「冷:s-cold1,s-cold2,s-cold3...」「値段:s-price1,s-price2,s-price3...」というように、商品の増減を予想し多めに登録しています。
- 商品名の入力欄を空欄にすると、商品名・温・冷・値段全てdisplay: none;になるようにしています。
css
1/*商品名が入力された時*/ 2.openitem { 3 display: block; 4} 5 6/*商品名が空欄の時*/ 7.closeitem { 8 display: none; 9} 10 11/*温冷マーク(チェックにより表示・非表示ができるよう分けています)*/ 12.hot { 13 background-color: #855976; 14 color: #fff; 15 width: 3.5vw; 16 height: 3.5vw; 17 padding: 1.7vw; 18 border-radius: 50%; 19 font-size: 3.5vw; 20} 21 22.cold { 23 background-color: #595C85; 24 color: #fff; 25 width: 3.5vw; 26 height: 3.5vw; 27 padding: 1.7vw; 28 border-radius: 50%; 29 font-size: 3.5vw; 30} 31 32/*値段単位*/ 33.menulist dd[data-unit]::after { 34 content: attr(data-unit); 35 font-size: 3.5vw; 36}
php
1<?php get_header(); ?> 2<?php 3/* 4 Template Name: セット 5 */ 6?> 7 <main class="menulist"> 8 <div class="menulist-background"> 9 <div class="box"> 10 <div class="<?php if ( get_post_meta($post->ID, 's-name1' ,TRUE) ): ?><?php echo 'openitem'; ?><?php else: ?><?php echo 'closeitem'; ?><?php endif; ?>"> 11 <dl> 12 <dt> 13 <div class="menulist-name"> 14 <p><?php echo CFS()->get('s-name1'); ?></p> 15 </div> 16 <span class="<?php if ( get_post_meta($post->ID, 's-hot1' ,TRUE) ): ?><?php echo 'hot'; ?><?php endif; ?>"> 17 <?php if ( get_post_meta($post->ID, 's-hot1' ,TRUE) ): ?>温<?php endif; ?> 18 </span> 19 <span class="<?php if ( get_post_meta($post->ID, 's-cold1' ,TRUE) ): ?><?php echo 'cold'; ?><?php endif; ?>"> 20 <?php if ( get_post_meta($post->ID, 's-cold1' ,TRUE) ): ?>冷<?php endif; ?> 21 </span> 22 </dt> 23 <dd data-unit="<?php if ( get_post_meta($post->ID, 's-price1' ,TRUE) ): ?><?php echo '円'; ?><?php endif; ?>"><?php echo CFS()->get('s-price1'); ?></dd> 24 </dl> 25 </div> 26 <div class="<?php if ( get_post_meta($post->ID, 's-name1' ,TRUE) ): ?><?php echo 'openitem'; ?><?php else: ?><?php echo 'closeitem'; ?><?php endif; ?>"> 27 <dl> 28 <dt> 29 <div class="menulist-name"> 30 <p><?php echo CFS()->get('s-name2'); ?></p> 31 </div> 32 <span class="<?php if ( get_post_meta($post->ID, 's-hot2' ,TRUE) ): ?><?php echo 'hot'; ?><?php endif; ?>"> 33 <?php if ( get_post_meta($post->ID, 's-hot2' ,TRUE) ): ?>温<?php endif; ?> 34 </span> 35 <span class="<?php if ( get_post_meta($post->ID, 's-cold2' ,TRUE) ): ?><?php echo 'cold'; ?><?php endif; ?>"> 36 <?php if ( get_post_meta($post->ID, 's-cold2' ,TRUE) ): ?>冷<?php endif; ?> 37 </span> 38 </dt> 39 <dd data-unit="<?php if ( get_post_meta($post->ID, 's-price2' ,TRUE) ): ?><?php echo '円'; ?><?php endif; ?>"><?php echo CFS()->get('s-price2'); ?></dd> 40 </dl> 41 </div> 42 <div class="<?php if ( get_post_meta($post->ID, 's-name3' ,TRUE) ): ?><?php echo 'openitem'; ?><?php else: ?><?php echo 'closeitem'; ?><?php endif; ?>"> 43 <dl> 44 <dt> 45 <div class="menulist-name"> 46 <p><?php echo CFS()->get('s-name3'); ?></p> 47 </div> 48 <span class="<?php if ( get_post_meta($post->ID, 's-hot3' ,TRUE) ): ?><?php echo 'hot'; ?><?php endif; ?>"> 49 <?php if ( get_post_meta($post->ID, 's-hot3' ,TRUE) ): ?>温<?php endif; ?> 50 </span> 51 <span class="<?php if ( get_post_meta($post->ID, 's-cold3' ,TRUE) ): ?><?php echo 'cold'; ?><?php endif; ?>"> 52 <?php if ( get_post_meta($post->ID, 's-cold3' ,TRUE) ): ?>冷<?php endif; ?> 53 </span> 54 </dt> 55 <dd data-unit="<?php if ( get_post_meta($post->ID, 's-price3' ,TRUE) ): ?><?php echo '円'; ?><?php endif; ?>"><?php echo CFS()->get('s-price3'); ?></dd> 56 </dl> 57 </div> 58 ・ 59 ・ これが繰り返し続きます。 60 ・ 61 </div> 62 </div> 63 </main> 64 </div> 65<?php get_footer(); ?>
カスタムフィールドをどのように保存しているのか不明ですので、どのように保存しているのか質問に追記していただくことは可能ですか?
また、データの構造によっては、Custom Field Suite のループフィールド( https://mgibbs189.github.io/custom-field-suite/field-types/loop.html ) を使う方法もあるかも知れません。
以下のように保存しています。保存とはこちらのことでよろしいでしょうか汗
商品名「商品名・s-name1・単一行テキスト」
温「温・s-hot1・真/偽(簡易チェックボックス)」
冷「冷・s-cold1・真/偽(簡易チェックボックス)」
値段「値段・s-price1・単一行テキスト」
リンク拝見しました。なるほど!ループフィールドというものが使えそうですね。
[【WordPress】Custom Field Suiteで繰り返しのカスタムフィールドグループを作る](https://deep-space.blue/web/1335)のように使用するのでしょうか。
CSSの装飾も関係する気がしてきたので、追記しておきます。