The following code allows you to upload multiple images but only one is saved to the option. Can multiple images be saved to the option as an array or would I have to create separate controls?

    'description'=>"Choose the images for the slider",

$wp_customize->add_control(new WP_Customize_Image_Control($wp_customize,"slider[images]",array(

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]).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.