# Select
Creates a select box with pre-defined options.
Field::make( 'select', 'crb_select', __( 'Choose Options' ) )
->set_options( array(
'1' => 1,
'2' => 2,
'3' => 3,
'4' => 4,
'5' => 5,
) )
# Config methods
# add_options( $options )
Add an associative array with options or a callable (opens new window).
The method can be called multiple times, in which case the options between the calls will be appended (instead of overwritten).
# set_options( $options )
Set options as an associative array or a callable (opens new window).
The method is not intended to be called multiple times – each call will overwrite the previous options.
Field::make( 'select', 'crb_content_align', __( 'Text alignment' ) )
->add_options( array(
'left' => __( 'Left' ),
'center' => __( 'Center' ),
'right' => __( 'Right' ),
) )
# Performance implications!
If fetching your options has performance implications we strongly suggest you define a function to retrieve them and pass that function's name (or any valid callable) as the argument to add_options()/set_options() - this way your options will only be fetched when needed rather than on every pageload:
function my_computation_heavy_getter_function() {
$results = $wpdb->get_results(); // fetching from the database, for example
$results_dictionary = results_to_dictionary( $results ); // pseudocode for transforming database results to key=>value dictionary
return $results_dictionary;
}
// ...
Field::make( 'select', 'crb_select_field' )
->add_options( 'my_computation_heavy_getter_function' )
!> If you provide an indexed array with no key values, the default indexes (0, 1, 2 …) of the elements will be used.