public static function walk($field, $options, $db_fields, $meta)
{
$attributes = self::call('get_attributes', $field, $meta);
$walker = new RWMB_Walker_Select($db_fields, $field, $meta);
$output = sprintf('<select %s>', self::render_attributes($attributes));
if (false === $field['multiple']) {
$output .= $field['placeholder'] ? '<option value="">' . esc_html($field['placeholder']) . '</option>' : '';
}
$output .= $walker->walk($options, $field['flatten'] ? -1 : 0);
$output .= '</select>';
$output .= self::get_select_all_html($field);
return $output;
}
/** * Get field HTML * * @param mixed $options * @param mixed $db_fields * @param mixed $meta * @param array $field * @return string */ public static function walk($options, $db_fields, $meta, $field) { switch ($field['field_type']) { case 'checkbox_list': case 'radio_list': return RWMB_Input_List_Field::walk($options, $db_fields, $meta, $field); break; case 'select_tree': return RWMB_Select_Tree_Field::walk($options, $db_fields, $meta, $field); break; case 'select_advanced': return RWMB_Select_Advanced_Field::walk($options, $db_fields, $meta, $field); break; case 'select': default: return RWMB_Select_Field::walk($options, $db_fields, $meta, $field); break; } }