投稿などに簡単にカスタムフィールドを追加できるプラグイン「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
の部分をタクソノミー名に変更します。
設定追加ができていればカテゴリーの編集画面に設定が追加されます。
追加できる項目タイプは投稿などと同じはずなので、こちらの記事が参考になるかと思います▼
設定値を取得する
値の取得は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を取得しなければいけないところがちょっと面倒かな?って感じですが、それ以外は特に難しくはないはずです!
ではまた。