【保存版】Smart Custom Fields(SCF)の出力方法まとめ|コピペOKな実務用コード集
2026年02月01日
WordPress制作の現場で欠かせないプラグイン「Smart Custom Fields(SCF)」。一度設定すれば便利ですが、出力用コードは意外と忘れがちですよね。
今回は、私が実務で何度も見返す「SCF出力コードの決定版」をまとめました。自分用の備忘録ですが、コピペしてそのまま使えるスニペットとして公開します。
目次
1. テキスト(Text)
最も基本。記述がある時だけ出力する「if文」をセットで使うのがプロの作法です。
<?php
$text = SCF::get('field_name');
if ( !empty($text) ) :
echo esc_html($text);
endif;
?>
2. テキストエリア(Textarea):改行を有効にする
テキストエリアで入力した「改行」をブラウザでも反映させるには nl2br() を使います。
<?php
$textarea = SCF::get('field_textarea');
if ( !empty($textarea) ) :
echo nl2br(esc_html($textarea));
endif;
?>
3. ラジオボタン・チェックボックス
チェックボックスは「配列」で取得されるため、複数の項目を表示する場合はループ処理が必要です。
ラジオボタン(単一選択)
<?php echo esc_html(SCF::get('field_radio')); ?>
チェックボックス(複数選択)
<?php
$check_array = SCF::get('field_checkbox');
if ( !empty($check_array) ) :
echo '<ul class="cmn_list">';
foreach ( $check_array as $value ) {
echo '<li>' . esc_html($value) . '</li>';
}
echo '</ul>';
endif;
?>
4. 画像(Image):src URLを出力
SCFはデフォルトで「画像ID」を返します。それを使ってURLとalt属性を取得する、最も安全な書き方です。
<?php
$img_id = SCF::get('field_image');
if ( !empty($img_id) ) :
// サイズは 'full', 'large', 'medium' など
$img_url = wp_get_attachment_image_src($img_id, 'full');
$img_alt = get_post_meta($img_id, '_wp_attachment_image_alt', true);
?>
<img src="<?php echo esc_url($img_url[0]); ?>" alt="<?php echo esc_attr($img_alt); ?>">
<?php endif; ?>
5. 繰り返しフィールド(Repeat Group)
SCF最大の武器。ループ内の名前(キー)は、SCF設定画面の「名前」と一致させる必要があります。
<?php
$repeat_group = SCF::get('group_name'); // ここにグループ名を指定
foreach ( $repeat_group as $fields ) :
// グループ内の特定の項目に値がある場合のみ表示
if ( !empty($fields['item_title']) ) :
?>
<div class="custom_item">
<h3><?php echo esc_html($fields['item_title']); ?></h3>
<p><?php echo nl2br(esc_html($fields['item_text'])); ?></p>
</div>
<?php
endif;
endforeach;
?>
開発メモ:記述がある場合だけ出し分けるコツ
クライアントワークでは、「空欄ならセクションごと非表示にする」という処理が多用されます。今回紹介した if ( !empty($var) ) をラッパー(囲い)のタグに対しても使うことで、無駄な余白や空タグが出るのを防げますよ!
これで次からのコーディングが少し楽になりそうです。もし「あの項目の書き方は?」というのがあれば、また追記していきます!
