概要説明
Smart Custom Fieldsを使う時にfunctions.phpにてカスタムフィールドを行うときのカスタマイズ。画面からカスタムフィールドの定義は行えるのですがfunctions.phpでも定義できますという内容です。
~ 目次 ~
プラグインインストール
バージョン:4.2.2から更新が止まっているようなので使用の際には要注意です。
管理画面からカスタムフィールド追加
functions.phpにてカスタムフィールド追加
functions.php
/*---------------------------------------------------- Smart Custom Fields定義 ----------------------------------------------------*/ add_filter('smart-cf-register-fields', function ($settings, $post_type, $id, $meta_type) { // 固定ページのみに制限 if ( !in_array( $post_type, array( 'page' ) ) ) { return $settings; } $Setting = SCF::add_setting( 'sample_area', 'サンプルエリア' ); // テキスト項目 $Setting->add_group( 'scf_text', false, array( array( 'name' => 'text', 'label' => 'テキスト項目', 'type' => 'text', 'default' => '初期値', 'instruction' => '項目説明', ), ) ); $settings[] = $Setting; return $settings; }, 10, 4);
テキストエリア項目追加
functions.php
// テキストエリア $Setting->add_group( 'scf_textarea', false, array( array( 'name' => 'textarea', 'label' => 'テキストエリア', 'type' => 'textarea', 'rows' => 2, // 表示行数 'default' => '初期値', 'instruction' => '項目説明', ), ) );
画像アップロード項目追加
functions.php
// 画像 $Setting->add_group('scf_image', true, [ array( 'name' => 'image', 'label' => '画像', 'type' => 'image', 'size' => 'thumbnail', 'instruction' => '項目説明', ), ]);
ファイルアップロード項目追加
functions.php
// ファイル $Setting->add_group('scf_file', true, [ array( 'name' => 'file', 'label' => 'ファイル', 'type' => 'file', 'instruction' => '項目説明', ), ]);
セレクトボックス項目追加
functions.php
// セレクトボックス $Setting->add_group('scf_select', true, [ array( 'name' => 'select', 'label' => 'セレクトボックス', 'type' => 'select', 'choices' => [ '0' => '選択肢A', '1' => '選択肢B', ], 'instruction' => '項目説明', ), ]);
チェックボックス項目追加
functions.php
// チェックボックス $Setting->add_group('scf_check', true, [ array( 'name' => 'check', 'label' => 'チェックボックス', 'type' => 'check', 'choices' => [ '0' => '選択肢A', '1' => '選択肢B', ], 'instruction' => '項目説明', ), ]);
ラジオボタン項目追加
functions.php
// ラジオボタン $Setting->add_group('scf_radio', true, [ array( 'name' => 'radio', 'label' => 'ラジオボタン', 'type' => 'radio', 'choices' => [ '0' => '選択肢A', '1' => '選択肢B', ], 'instruction' => '項目説明', ), ]);