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

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

投稿などに簡単にカスタムフィールドを追加できるプラグイン「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で追加したカテゴリー設定

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

設定値を取得する

値の取得は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を取得しなければいけないところがちょっと面倒かな?って感じですが、それ以外は特に難しくはないはずです!

ではまた。

WordPressカスタマイズ入門に最適な書籍を執筆しました!

WordPress 5.x 対応!Gutenbergを使った投稿の作成方法からWordPressブログをかっこよくカスタマイズするためのポイントを紹介した書籍を執筆しました!

詳しく見る