You define the setting as an array, however, you over and over reference the same entry slider[images]
.
$wp_customize->add_section("slider_images", array(
'title' => "Slider",
'description' => "Choose the images for the slider",
'priority' => '36',
));
$wp_customize->add_setting("slider_images", array(
'default' => "",
'type' => "option",
));
$slider_images = get_setting('slider_images');
$num_images = 0;
if (is_array($slider_images) && ! empty($slider_images))
$num_images = count($slider_images);
$wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, "slider_images[".$num_images."]", array(
'label' => __("Images", "adaptive-framework"),
'section' => "slider",
'settings' => "slider_images",
)));
Note: I did not test this, and I never used WP’s Theme Customization API before. And, of course, you need to take care of deleting images, and handling the remaining images/array entries and the like. This is just a (most probably not working) example.
If you want to store multiple entries in a single setting, use an array (e.g., slider_images
). Then, to define one specific entry, reference the specific array entry (e.g., slider_images[0]
).