【WordPress】Smart Custom Fieldsでカテゴリー・カスタムタクソノミーに設定を追加する

【WordPress】Smart Custom Fieldsでカテゴリー・カスタムタクソノミーに設定を追加する

2019.4.16

投稿などに簡単にカスタムフィールドを追加できるプラグイン「Smart Custom Fields」でカテゴリーやカスタムタクソノミーの設定を追加・取得する方法の覚書です。

カテゴリー・カスタムタクソノミー用の設定を追加する

設定の追加はプラグインの設定画面かfunctions.phpなどにコードを記入して定義します。

僕は基本的にコードで定義しています。サンプルコードはこちら▼

function aktk_smart_cf_register_fields( $settings, $type, $id, $meta_type ) {
  if( 'category' == $type ) {
    $setting = SCF::add_setting( 'cat-option', 'カテゴリー追加設定' );
    $fields  = array(
      array(
        'type'  => 'image',
        'name'  => 'cat_image',
        'label' => 'カテゴリー画像',
        'size'  => 'full',
      ),
      array(
        'type'  => 'text',
        'name'  => 'cat_title',
        'label' => 'titleタグ',
      ),
    );
    $setting->add_group( 'cat-options', false, $fields );
    $settings[] = $setting;
  }
  return $settings;
}
add_filter( 'smart-cf-register-fields', 'aktk_smart_cf_register_fields', 10, 4 );

カスタムタクソノミーに設定を追加する場合は'category' == $typeの部分をタクソノミー名に変更します。

設定追加ができていればカテゴリーの編集画面に設定が追加されます。

Smart Custom Fieldsで追加したカテゴリー設定

追加できる項目タイプは投稿などと同じはずなので、こちらの記事が参考になるかと思います▼

【WordPress】Smart Custom Fieldsのフィールドをテーマファイル内で定義するときのやり方まとめ
WordPressでカスタムフィールドを扱うプラグインとしては「Advanced Custom Fields」(略して「ACF」とも呼ばれる)が有名ですが、最近…
yosiakatsuki.net

設定値を取得する

値の取得はSCF::get_term_meta( タームID, タクソノミー名, フィールド名 )で出来ます。

カテゴリーの設定を追加した場合であれば、「タームID」にはカテゴリーID、「タクソノミー名」には「category」を渡してあげます。

おそらく、設定値を使う場面はカテゴリーアーカイブページだと思うので、設定取得の為のサンプルコードはこんな感じ▼

$term       = get_queried_object();
$term_id    = $term->term_id;
$taxonomy   = 'category';
$field_name = 'cat_title';
echo esc_html( SCF::get_term_meta( $term_id, $taxonomy, $field_name ) );

タームIDを取得しなければいけないところがちょっと面倒かな?って感じですが、それ以外は特に難しくはないはずです!

ではまた。