对于wordpress主题文章字段的自定义及拓展,国内的站友已经发挥的淋漓尽致了,从最简单的文本至最复杂的自定义组件,都能运用自如,但是对于wordpress分类目标的字段使用及功能的相关开发还是没有做到最大化,今天大挖给大家分享一组可以给wordpress分类目录添加类型字段的代码,来方便评大家对wordpress主题开发时添加对分类功能的开发。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
// 分类添加字段 function add_taxonomy_field(){ $type = ['article' => '文章', 'product' => '产品', 'case' => '案例']; $html = '<div class="form-field"><label for="tag-type">类型</label>'; foreach($type as $key => $val) { $html .= '<input name="tag-type" id="tag-type-'.$key.'" type="radio" value="'.$key.'" />' . $val; } $html .= '</div>'; echo $html; } add_action('category_add_form_fields','add_taxonomy_field',10,2); // 分类编辑字段 function edit_taxonomy_field( $tag ){ $value = get_option('tag-type-'.$tag->term_id); $type = ['article' => '文章', 'product' => '产品', 'case' => '案例']; $html = '<tr class="form-field form-required term-name-wrap"><th scope="row"><label for="tag-type">类型</label></th><td>'; foreach($type as $key => $val) { if ( $value == $key ) { $html .= '<input name="tag-type" id="tag-type-'.$key.'" type="radio" checked="checked" value="'.$key.'" />' . $val; } else { $html .= '<input name="tag-type" id="tag-type-'.$key.'" type="radio" value="'.$key.'" />' . $val; } } $html .= '</td></tr>'; echo $html; } add_action('category_edit_form_fields','edit_taxonomy_field',10,2); // 保存数据 function save_taxonomy_field( $term_id ){ if( isset($_POST['tag-type']) ){ //判断权限--可改 if(!current_user_can('manage_categories')){ return $term_id; } $tag_type_key = 'tag-type-'.$term_id; $tag_type_value = $_POST['tag-type']; // 更新选项值 update_option( $tag_type_key, $tag_type_value ); } } function taxonomy_setup() { add_action('created_category','save_taxonomy_field',10,1); add_action('edited_category','save_taxonomy_field',10,1); } add_action( 'admin_init', 'taxonomy_setup' ); |