カテゴリー編集部分に独自のフィールド設置
投稿の場合
functions.phpへ
<?php add_action('edit_category_form_fields', 'extra_category_fields'); //編集画面 add_action('category_add_form_fields', 'extra_category_fields'); //新規追加画面 function extra_category_fields($tag) { $t_id = $tag->term_id; $cat_meta = get_option("cat_$t_id"); ?> <tr class="form-field"> <th><label for="pagetitle">項目名</label></th> <td><input type="text" name="cat_meta[mytext]" id="mytext" size="25" value="<?php if(isset($cat_meta['mytext'])) echo esc_html($cat_meta['mytext']) ?>" /></td> </tr> <?php } ?>
カスタム投稿の場合
functions.phpへ
<?php add_action('投稿タイプ(タクソノミー)_cat_edit_form_fields', 'extra_taxonomy_fields'); //編集画面 add_action('投稿タイプ(タクソノミー)_cat_add_form_fields', 'extra_taxonomy_fields'); //新規追加画面 function extra_taxonomy_fields( $tag ) { $t_id = $tag->term_id; $cat_meta = get_option("cat_$t_id"); ?> <tr class="form-field"> <th><label for="pagetitle">項目名</label></th> <td><input type="text" name="cat_meta[mytext]" id="mytext" size="25" value="<?php if(isset($cat_meta['mytext'])) echo esc_html($cat_meta['mytext']) ?>" /></td> </tr> <?php } ?>
登録する
functions.phpへ
<?php add_action ('edited_term', 'save_extra_category_fileds'); function save_extra_category_fileds($term_id) { if(isset($_POST['cat_meta'])) { $t_id = $term_id; $cat_meta = get_option("cat_$t_id"); $cat_keys = array_keys($_POST['cat_meta']); foreach ($cat_keys as $key){ if (isset($_POST['cat_meta'][$key])){ $cat_meta[$key] = $_POST['cat_meta'][$key]; } } update_option("cat_$t_id", $cat_meta); } } ?>
テンプレートからの呼び出し
<?php /* 投稿の場合 */ $thiscat = get_category($cat); $cat_data = get_option('cat_'.intval($thiscat->term_id)); $mytext = $cat_data['mytext']; /* カスタム投稿の場合 */ $thiscat = get_queried_object(); $t_id = $thiscat->term_id; $cat_meta = get_option("cat_$t_id"); $mytext = $cat_meta['mytext']; ?>