Smart Custom Fields を使ってカスタムフィールド作成

カスタムフィールドを作るWordPressのプラグイン Smart Custom fields(スマートカスタムフィールド)の使い方についてのメモです。(ここからSmart Custom fields → SCF と表記します)

カスタムフィールド作成のプラグインで一番有名なのは、Advanced Custom Fields(ACF)だと思います 。ACFは無料版と有料版があり、無料でできることが限られており、そのうちの一つに繰り返しフィールドがあります。

この繰り返しフィールドをSCFは無料で使えることがACFに勝るメリット。ACFほど豊富な機能は必要ない場合、シンプルで使いやすいのもSCFです。

前書き

使い方の前に、SCFについてお話ししておきます。

このプラグインは以前、数年もの間更新されておらず、作者の方がクローズに向けて動く、新しく採用するのは推奨しないとのことをアナウンスされていました。

ですが、2025年6月現在、プラグインページを確認したところ更新されていました。現時点でWordPress最新バージョンの6.8.1も検証済みとなっています。

プラグインページ : Smart Custom Fields – WordPress plugin | WordPress.org

更新され始めたことで使い続けられるのかな…と思いつつ、一度クローズするとの話はあったため、少し慎重に使用すべきかなとも思います。
一度試しに使ってみて問題ないか確認してから本番のサイトに取り入れてみてください。

基本のカスタムフィールド作成

動作確認環境

  • WordPressバージョン  :  6.8.1
  • プラグインバージョン  :  5.0.3
  • 動作確認日  :  2025/06/22

まずはプラグイン追加画面から「Smart Custom fields」を検索しインストール & 有効化。

プラグイン追加時の表示

有効化したらメニューに「Smart Custom fields」が追加されるのでクリックして設定画面へ移動します。

上部にある「新規追加」をクリックしてカスタムフィールドを作っていきます。

カスタムフィールドのタイトルを入力し、「フィールドを追加」をクリックしてフィールドの内容を設定していきます。

タイトルを設定しなくてもフィールドの公開はできますが、投稿の編集画面に作成したカスタムフィールドが表示されませんでした。なのでタイトルも忘れずに設定しましょう。

新規追加の初期画面

「タイプ」と「名前」は入力必須です。「ラベル」は投稿時に表示されるテキストで、空欄にした場合は「名前」で設定したテキストが表示されます。

カスタムフィールド設定画面

選べるタイプは基本のテキストやテキストエリア、チェックボックスやラジオ・セレクト、画像やファイル、関連投稿なども選べます。

繰り返しフィールドの作成

繰り返しフィールドは、設定した項目を投稿画面上で増やせるフィールドです。

SCF は ACF のようにフィールドタイプに「グループ」というものはありません。
そのため、項目を動的に増やす必要はないけれど、複数の項目をグルーピングしたいという時にもこちらの機能が役立ちます。

この設定によって投稿画面で表示の増減ができるようになります。
三線部分をドラッグして表示順を変えることもできます。

作成したSCFのフィールドが表示された投稿画面

表示条件の設定

「表示条件(投稿)」カスタムフィールドをどの投稿タイプで使用するかを設定も必要です。サイトで使用されている投稿タイプがリストに表示されているので、使用するものをONにします。

どの投稿タイプもOFFの状態の場合、どこにもカスタムフィールドが表示されません。

表示条件は投稿の他、プロフィール(ユーザー権限)、タクソノミー、オプションページが用意されています。もちろん全ての条件で表示させたい場合は ON にする必要はありません。そうではない場合、フィールドが必要ないところまで無駄に表示させずに済むので、こちらも設定推奨です。

作成したカスタムフィールド投稿を公開すると、表示条件にて設定した投稿タイプの編集画面に、フィールドが表示されます。

投稿編集画面

SCFカスタムフィールドの出力方法

SCFには、カスタムフィールドの情報を取得する SCF:: から始まる専用コードがあります。取得のみなので、echo を使って出力するのが基本の使い方です。

このコードの他 post_custom()get_post_meta() など、WordPressの汎用的な書き方でも取得可能です。こちらの記述方法だと、プラグインを変更したい時にファイルのコードがそのまま使えます。

PHP
post_custom('field_name');
get_post_meta(get_the_ID(), 'field_name', true);

この記事では SCF::*** を使ってコードを紹介していきます。

基本の取得・出力

カスタムフィールドに入力された値は SCF::get('field_name') で取得することができます。

“SCF” の文字列は大文字でも小文字でもOK。field_name の部分にSCFで設定したフィールド名を入れると、そのフィールドに入力した内容が取得できます。

SCFでは入力項目を必須に設定することはできないので、空欄の場合も想定して条件分岐を入れておきましょう。変数に入れておくと使い回しができて便利です。
またこのコードの戻り値はサニタイズされていないとのことなので、必要に応じてサニタイズ処理も入れておくと安全です。

PHP
$sample = esc_html(SCF::get('field_name'));

// $sampleを出力
echo $sample;

// $sampleを使って条件分岐
if($sample) {
  // $sampleがあったら…
} else {
  // $sampleがなかったら…
}

テキストエリアで改行を表示する

フィールドタイプ「テキストエリア」にした時、入力時に改行しても、SCF::get('field_name'); だけでは出力の時に改行されません。(半角スペースになる)

改行を表示したい時は nl2br() を使います。

PHP
$scf_textarea = SCF::get('textarea');

// 改行されない
echo $scf_textarea;
// 改行される
echo nl2br($scf_textarea);

チェックボックスはforeachを使う

チェックボックスは配列で値を返します。下記のようなコードだとエラーになり表示されません。

PHP
$scf_checkbox = scf::get('check');
echo $scf_checkbox;

配列の場合、foreachを使って出力します。

PHP
$scf_checkbox = scf::get('checkbox');
foreach($scf_checkbox as $field ){
  echo $field;
}

ラジオボタンやセレクトボックス(選択)は、テキストタイプと同様の書き方で取得できます。

PHP
$scf_radio = scf::get('radio');
echo $scf_radio;

$scf_select = scf::get('select');
echo $scf_select;

画像の出力

SCF の画像タイプの戻り値は「ID」です。そのため、画像を表示させるためには wp_get_attachment_image() を使用します。

PHP
$scf_image = scf::get('image');
echo wp_get_attachment_image($scf_image);

繰り返しフィールドの出力

繰り返しフィールドの出力は、まずグループを取得し、foreach で回して各項目の値を出力させます。

PHP
<?php
  $scf_group = SCF::get('scf_group');
  foreach ($scf_group as $item):
?>
<table>
  <tr>
    <th><?php echo wp_get_attachment_image( $item['scf_img'] , 'large' ); ?></th>
    <td><?php echo $item['group_text']; ?></td>
  </tr>
</table>
<?php endforeach ?>

$item['scf_img']scf_img の部分はグループ内にあるフィールドで設定した「名前」が入ります。

index