/** * Add default value for 'taxonomy' field * * @param $field * * @return array */ static function normalize_field($field) { $default_args = array('hide_empty' => false); // Set default args $field['options']['args'] = !isset($field['options']['args']) ? $default_args : wp_parse_args($field['options']['args'], $default_args); $tax = get_taxonomy($field['options']['taxonomy']); $field['placeholder'] = empty($field['placeholder']) ? sprintf(__('Select a %s', 'framework'), $tax->labels->singular_name) : $field['placeholder']; switch ($field['options']['type']) { case 'select_advanced': $field = RWMB_Select_Advanced_Field::normalize_field($field); break; case 'checkbox_list': case 'checkbox_tree': $field = RWMB_Checkbox_List_Field::normalize_field($field); break; case 'select': case 'select_tree': $field = RWMB_Select_Field::normalize_field($field); break; default: $field['options']['type'] = 'select'; $field = RWMB_Select_Field::normalize_field($field); } if (in_array($field['options']['type'], array('checkbox_tree', 'select_tree'))) { if (isset($field['options']['args']['parent'])) { $field['options']['parent'] = $field['options']['args']['parent']; unset($field['options']['args']['parent']); } else { $field['options']['parent'] = 0; } } $field['field_name'] = "{$field['id']}[]"; return $field; }
/** * Add default value for 'taxonomy' field * * @param $field * * @return array */ static function normalize_field($field) { $default_args = array('hide_empty' => false); //Set default args $field['options']['args'] = !isset($field['options']['args']) ? $default_args : wp_parse_args($field['options']['args'], $default_args); //Field name be an array by default $field['field_name'] = "{$field['id']}[]"; switch ($field['options']['type']) { case 'select_advanced': $field = RWMB_Select_Advanced_Field::normalize_field($field); break; case 'checkbox_list': case 'checkbox_tree': $field = RWMB_Checkbox_List_Field::normalize_field($field); break; case 'select': case 'select_tree': $field = RWMB_Select_Field::normalize_field($field); break; default: $field['options']['type'] = 'select'; $field = RWMB_Select_Field::normalize_field($field); } if (in_array($field['options']['type'], array('checkbox_tree', 'select_tree'))) { if (isset($field['options']['args']['parent'])) { $field['options']['parent'] = $field['options']['args']['parent']; unset($field['options']['args']['parent']); } else { $field['options']['parent'] = 0; } } return $field; }