• Hi
    I’m developing theme with setting page for multiple image upload.
    For each image I have a structure – setting field and callback function which go through multiple input fields.
    So far everything is working well but now I am confused since I got multiple input fields and only one setting field for each image. Am I on the right path? Is this correct way of doing this? I appreciate any advice.

    My options array looks like this:

    $options = array(
    'slide1'=>array(
    'image'=>'',
    'title'=>'',
    'titlecolor'=>'',
    'text'=>'',
    'textcolor'=>'',
    ),
    'slide2'=>array(
    ...
    ),
    ....
    );

    I registerd options like this:

    register_setting( 'wpbscarousel_options', 'wpbscarousel_options', 'wpbscarousel_options_validate' );
        add_settings_section( 'wpbscarousel_section', 'Wpbscarousel Options Section', 'wpbscarousel_section_callback', 'wpbscarousel' );
        add_settings_field( 'slide1', 'Wpbscarousel Image1', 'wpbscarousel_slide1_callback', 'wpbscarousel', 'wpbscarousel_section' );
    add_settings_field( 'slide2', 'Wpbscarousel Image2', 'wpbscarousel_slide2_callback', 'wpbscarousel', 'wpbscarousel_section' );
    	add_settings_field( 'slide3', 'Wpbscarousel Image3', 'wpbscarousel_slide3_callback', 'wpbscarousel', 'wpbscarousel_section' );

    This is a callback function:

    <?php function wpbscarousel_slide1_callback(){
    	$options = get_option( 'wpbscarousel_options' ); ?>
    
    	<span class='upload'>
            <input type='text' id='wpbscarousel_image1' class='regular-text text-upload' name='wpbscarousel_options[slide1][image]' value='<?php echo esc_url($options["slide1"]["image"]); ?>'/>
            <input type='button' class='button button-upload' value='Upload an image'/>
    		<input type='button' class='button button-remove' value='Remove from slider' />
            <img style='max-width: 300px; display: block;' src='<?php echo esc_url($options["slide1"]["image"]); ?>' class='preview-upload'/>
    
    		<label for="wpbscarousel_title1">Title</label>
    		<input type="text" id="wpbscarousel_title1" class="" name="wpbscarousel_options[slide1][title]" value='<?php echo esc_attr($options["slide1"]["title"]); ?>'/><br/>
    
    		<label for="wpbscarousel_titlecolor1">Title Color</label>
    		<input type="text" name="wpbscarousel_options[slide1][titlecolor]" id="wpbscarousel_titlecolor1" value="<?php echo esc_attr($options["slide1"]["titlecolor"]); ?>"/>
    		<input type="button" class="pickcolor button-secondary" value="<?php _e('Select Color') ?>">
    		<div class="colorpicker" style="z-index:100;position:absolute;display:none;"></div><br/>
    
    		<label for="wpbscarousel_text1">Text</label>
    		<textarea name="wpbscarousel_options[slide1][text]" id="wpbscarousel_text1" rows="2" cols="40"><?php echo esc_attr($options["slide1"]["text"]);?></textarea><br/>
    
    		<label for="wpbscarousel_textcolor1">Text Color</label>
    		<input type="text" name="wpbscarousel_options[slide1][textcolor]" id="wpbscarousel_textcolor1" value="<?php echo esc_attr($options["slide1"]["textcolor"]); ?>"/>
    		<input type="button" class="pickcolor button-secondary" value="<?php _e('Select Color') ?>">
    		<div class="colorpicker" style="z-index:100;position:absolute;display:none;"></div><br/>
        </span>
    <?php
    }
  • The topic ‘One setting field with one callback function and multiple input fields’ is closed to new replies.