RWMB_Select_Field::walk PHP Method

walk() public static method

Walk options
public static walk ( array $field, mixed $options, mixed $db_fields, mixed $meta ) : string
$field array
$options mixed
$db_fields mixed
$meta mixed
return string
    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;
    }

Usage Example

 /**
  * 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;
     }
 }