5

I'm having difficulty implementing the color picker exactly the same as WordPress in my plugin.

Is there any official wordpress documentation on how to use this feature?

6

Yes, there is: https://make.wordpress.org/core/2012/11/30/new-color-picker-in-wp-3-5/

1. You should enqueue scripts and styles...

add_action( 'admin_enqueue_scripts', 'mw_enqueue_color_picker' );
function mw_enqueue_color_picker( $hook_suffix ) {
    // first check that $hook_suffix is appropriate for your admin page
    wp_enqueue_style( 'wp-color-picker' );
    wp_enqueue_script( 'my-script-handle', plugins_url('my-script.js', __FILE__ ), array( 'wp-color-picker' ), false, true );
}

2. ... add an input...

<input type="text" value="#bada55" class="my-color-field" data-default-color="#effeff" />

3. ... and call wpColorPicker function

jQuery(document).ready(function($){
    $('.my-color-field').wpColorPicker();
});
| improve this answer | |
  • You enqueue scripts and styles incorrectly, so they're not loading at all. Why? Because you provide incorrect url to these files. As a path you use plugins_url( 'personalize-wp-login/js/bootstrap.min.js' ) and it doubles personalize-wp-login part. Take a look at this answer: wordpress.stackexchange.com/a/216881/34172 – Krzysiek Dróżdż May 23 '18 at 20:17
0

We need to wp_enqueue_script the script and wp_enqueue_style the style with add_action to the functions.php file. Just include a jQuery file and stylesheet file by this script.

// Register Scripts &amp; Styles in Admin panel
function custom_color_picker_scripts() {
wp_enqueue_style( 'wp-color-picker' );
wp_enqueue_script( 'iris', admin_url( 'js/iris.min.js' ), array( 'jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch' ), false, 1 );
wp_enqueue_script( 'cp-active', plugins_url('/js/cp-active.js', __FILE__), array('jquery'), '', true );

}
add_action( 'admin_enqueue_scripts', custom_color_picker_scripts);

Now create a new javascript file as like cp-active.js and keep it avobe defined “/js/cp-active.js” file path using bellows code.

jQuery('.color-picker').iris({
// or in the data-default-color attribute on the input
defaultColor: true,
// a callback to fire whenever the color changes to a valid color
change: function(event, ui){},
// a callback to fire when the input is emptied or an invalid color
clear: function() {},
// hide the color picker controls on load
hide: true,
// show a group of common colors beneath the square
palettes: true
});

Add a textbox to your settings page with a CSS class for the color picker, where you want to dispaly the input text. I have use “color_code” for input $variable.

<input id="color_code" class="color-picker" name="color_code" type="text" value="" />

Please see more details on Add jQuery Color Picker WordPress Theme or Plugin

| improve this answer | |

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.