WordPress

Add Colour Picker To WordPress Admin

In a previous tutorial you would of learnt how you can create your own theme options page using the Settings API. You might of also seen the tutorial about default WordPress scripts which come with the WordPress core.

In this tutorial we are going to use both of these tutorials to create a colour picker on your theme options page using the default WordPress scripts.

When you create a field on your theme options page you use the function add_settings_field(), one of the parameters of this function is to name a callback function which displays the field on the page.

The below code will add a colour picker to your theme option page.

add_settings_field( 'example_colour_picker', 'Example Colour Picker', 'pu_display_colour_picker', 'pu_theme_options.php', 'pu_colour_section', array() );

add_action( 'admin_enqueue_scripts', 'enqueue_colour_picker' );

function pu_display_colour_picker($args){
     extract( $args );

     echo '<div class="farb-popup-wrapper">';
		
     echo '<input type="text" id="'.$id.'" name="'.OPT_NAME.'['.$id.']" value="'.$value.'" class="'.$class.' popup-colorpicker" style="width:70px;"/>';
     
     echo '<div id="'.$id.'picker" class="color-picker"></div>';
		
     echo (!empty($desc))?' <span class="description">'.$desc.'</span>':'';
		
     echo '</div>';
}

/**
 * Enqueue the colour picker
 */
function enqueue_colour_picker(){
                wp_enqueue_script(
			'artus-field-color-js', 
			'Field_Color.js', 
			array('jquery', 'farbtastic'),
			time(),
			true
		);	

		wp_enqueue_style( 'farbtastic' );
}

The above code will use the add_settings_field() function to create a field of displaying the colour picker. Within the function we add an action to attach a function onto the admin_enqueue_scripts to add javascript to the page. This javascript will load the inbuilt default script of farbtastic, the colour picker.

We also load a Javascript file called Field_Color.js which we will use to attach elements to the farbtastic jQuery function.

Now create a Javascript file and add the following code.

jQuery(document).ready(function(){
	
	var $color_inputs = jQuery('input.popup-colorpicker');

	$color_inputs.each(function(){
		var $input = jQuery(this);
		var $pickerId = "#" + jQuery(this).attr('id') + "picker";

		jQuery($pickerId).hide();
		jQuery($pickerId).farbtastic($input);
		jQuery($input).click(function(){jQuery($pickerId).slideToggle()});

	});
});

This searches for all elements with the class popup-colorpicker, with these items we can attach the farbtastic function to display the colour picker.

Back to top ^

Join Paulund

  • Get access to 100s of premium tutorials and downloadable content
  • Members content consists of Premium WordPress plugins, CSS packages, jQuery packages, tutorial demo files and templates for 100s of web development tutorials
  • In-depth development tutorials
  • Priority tutorial requests
  • Priority email development support
  • No ads

Here at Paulund you'll find Web Development tutorials and snippets focusing mainly on PHP, WordPress and CSS. Members will get access to premium tutorials that go into more detail about development with these languages. You will also get access to downloadable premium content based on the tutorial.

Join Paulund

Leave a Reply

Your email address will not be published. Required fields are marked *