SCF(Smart Custom Fields)のラジオボタンの使い方を解説します。
カスタムフィールドを使った繰り返し処理の中で、「これはテキストを大きくしたい」「カードを左右交互に出したい」等、個別に調整したい場合に使える手法です!
僕は主にクラスの付替えに使っていますが、画像の有無、要素を表示する、しないなどの選択が簡単にできる様になるため使い方をマスターしましょう!
ラジオボタンでできること
繰り返し処理の中で、個別に調整ができる。
今回はカードの色を3色コントロールするため、クラスのつけ外しをラジオボタンで操作します。コードと画像付きでわかりやすくをモットーに解説していきます。



プラグインSmart Custom Fieldsでの設定方法
クラスのつけ外し、指定のためにラジオボタンを設定します。
まずはSmart Custom Fieldsの設定から。

グループ内でタイプ、ラジオボタンを選択します。
ラベルは自身やクライアントがわかりやすい、後々ひと目見て編集しやすい名前にしましょう。
名前はコード上で呼び出すのに必要になります。

ループ変数とはforeachでループ内で取り出した1件分の値を表す変数です。今回でいうところの$info_list as $info(←これ)となります
選択肢の欄にて、キーと値を分けます。キーがコード上で取得する文字列、値はWordpressの管理画面に表示されるテキストになります。
デフォルト、手順、メモは空欄でも問題有りません。手順の説明が必要な場合は書いておきましょう。
コードの設定
php内でラジオボタンの内容によって変化するように書きます。
if文を使い条件分岐を行います。
コード全体
<div class="wrapper">
<?php
$info_list = SCF::get('information'); // グループを取得
foreach ($info_list as $info) : ?>
<div class="box">
<?php
// カードカラーによってクラスを決定
$color_class = '';
if ($info['card-color'] === 'black') {
$color_class = 'item--black';
} elseif ($info['card-color'] === 'red') {
$color_class = 'item--red';
} elseif ($info['card-color'] === 'gray') {
$color_class = 'item--gray';
}
?>
<h2 class="item <?php echo esc_attr($color_class); ?>">
<?php echo esc_html($info['item']); ?>
</h2>
<p class="content">
<?php echo nl2br(esc_html($info['content'])); ?>
</p>
</div>
<?php endforeach; ?>
</div>
上記の例だと、それぞれのキーによって対応したクラスがつくように設定しています。
ラジオボタンで何を選んだかによって、$info['card-color']の中身が変わってきます。
- キーがblackだったら、item--blackというクラスをつける。
- redだったら、item--redをつける。
- grayだったら、item-grayをつける。
<?php
// カードカラーによってクラスを決定
$color_class = '';
if ($info['card-color'] === 'black') {
$color_class = 'item--black';
} elseif ($info['card-color'] === 'red') {
$color_class = 'item--red';
} elseif ($info['card-color'] === 'gray') {
$color_class = 'item--gray';
}
?>
と言ったような条件分岐を行います。
今後もっと増えたら?
今は3つなのでまだマシですが、もっと増えたらif文でめちゃくちゃになってしまいます。そんなコード見たくないですよね。
そうならないために出力される文字列(キーで設定したテキスト)を直接クラス名に当てはめるといったこともできます。
<?php
$color = !empty($info['card-color']) ? esc_attr($info['card-color']) : 'gray';
?>
<h2 class="item item--<?php echo $color; ?>">
<?php echo esc_html($info['item']); ?>
</h2>
上記の例は、$colorに$info['card-color']の中身があればいれる、なければgrayを入れるといった三項演算子を使って、変数の有無を確認してからクラス名に当てています。
設定後、管理画面でラジオボタンで選択
WordPressの管理画面から、記事編集を行い選択します。
開発ツール等を使って、狙い通りのクラスがついていたら完成です!
クラスがつかない、エラーが出る
ラジオボタンを設定したのに、見た目に変化がない、クラスがつかないといった場合はキーのスペルが間違っているかもしれません。うまく読み込めてなかったり、キーの設定がうまく行っていない可能性もあります。
ちゃんとキーが取得できているかを見るために以下のコードを試してください。
<pre>
<?php print_r($設定した変数); ?>
</pre>
設定した変数の中身が見れます。キーの文字列が間違っていたり、0だったりするかもしれません。
また、空欄の行でもボタンが表示されてしまいます。こちらを選んでも0になりますので、空の行がないかを確認しましょう。
まとめ:SCFのラジオボタンで管理画面から調整する!

繰り返しフィールドが便利なSCFですが、一部少し変更を加えたい…と言った場合に便利なラジオボタンの使い方でした。
- プラグイン上でラジオボタンの設定
- キーと値を決める。
- コード上で、キーに応じた処理をif文して指定する。
僕はクラスのつけ外しに主に使っていますが、--colorをつけて色の変化、--reverseをつけて左右の入れ替え、コンテンツのオンオフ。様々なことで応用が可能です。
クライアントにも、自分にも、使いやすいサイトづくりを目指しましょう!