- Custom Field Suiteの「セレクト」の設定や出力の方法を知りたいな!
- 出力した値を「カンマ(,)」で区切りたいな…
このような疑問にお答えします!
<目次>
【Custom Field Suite】セレクトの設定と出力の方法
Custom Field Suiteを使用した「セレクト」の設定から出力までの手順は下記のとおり。
- 手順①:フィールドタイプで「セレクト」を選択し、任意で「複数選択」などを選ぶ
- 手順②:表示させたいページに出力させるコードを追加する
手順①:フィールドタイプで「セレクト」を選択し、任意で「複数選択」などを選ぶ
Custom Field Suiteの設定画面より、「新規フィールドを追加」して、フィールドタイプで「セレクト」を選択する。
1)「ラベル」と「名前」にお好きな名前を入力します。
2)「選択肢」は、一行ごとに項目を入力します。
3)「複数選択」、「Select2」、「バリデーション」、「概要」は任意で設定してください。
設定すると下記のとおり。
ちなみに、「Select2」の箇所ですが、チェックを入れることでUI(固定ページ(投稿ページ)の編集画面のデザイン)が変わります。
■「Render this field with Select2」にチェックを入れない場合
■「Render this field with Select2」にチェックを入れた場合
「Render this field with Select2」にチェックを入れた場合の方が使いやすいかと。
手順②:表示させたいページに出力させるコードを追加する
出力させるコードは下記のとおり。
<?php $values = CFS()->get('fruits'); ?>
<?php if(is_array($values)): ?>
<?php foreach($values as $key => $label): ?>
<?php echo $label; ?>
<?php endforeach; ?>
<?php endif; ?>
「is_array()」は、「変数が配列か?配列ではないか?」の条件分岐です。
つまり、固定ページ(投稿ページ)の編集画面で、「選択しているかどうか?」を確認しております。
なくても機能しますが、配列がない(空)場合、「Warning: Invalid argument supplied for foreach()」とエラーが表示されます。
リスト(ulやol)タグを使用すると下記のとおり。
<?php $values = CFS()->get('fruits'); ?>
<?php if(is_array($values)): ?>
<ul>
<?php foreach($values as $key => $label): ?>
<li><?php echo $label; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
出力した値を「カンマ(,)」で区切る方法
出力した値を「カンマ(,)」で区切るためのコードは下記のとおり。
<?php $values = CFS()->get('fruits'); ?>
<?php if(is_array($values)): ?>
<?php echo implode(',', $values); ?>
<?php endif; ?>
下記のように「カンマ(,)」で区切ることができたかと思います。
この辺りに関して詳しく調べたい方は、
「連想配列」、「implode関数」などのキーワードで検索してみてください。