Så här använder du WordPress Color Picker API

När WordPress-teamet släpper ut en ny version introducerar de några nya funktioner, inte bara för användare utan även för utvecklare. WordPress erbjuder många verktyg som gör det lättare att utveckla nya fantastiska teman eller plugins.

Ett av de senaste API-erna för WordPress-utvecklare är den nya färgväljaren; Med den här funktionen kan du ersätta standardtextfältet med en fin och användarvänlig färgplockare.

I denna handledning kommer jag att visa dig hur du lägger till färgplockaren i ditt WordPress-projekt. Låt oss börja.


Varför det kan vara användbart

Det finns några intressanta skäl till varför WordPress-utvecklare bör implementera val av färger med hjälp av det nya pekar-API:

För användare

  • Det ger ett snabbare och enklare sätt att välja en färg.
  • Användare behöver inte oroa sig för vilket format av färg de måste skriva - hexadecimal, RBG och så vidare.
  • Generellt sett ger det en övergripande bättre användarupplevelse.

För utvecklare

  • Dashboardsidorna kommer att integreras med WordPress användargränssnitt.
  • Det ger en enklare inputvalidering av värdet av färgfältet.
  • Det resulterar i en mer professionell slutprodukt eftersom den använder inbyggda kontroller.

När vi täcker några av de viktigaste aspekterna av WordPress Color Picker, låt oss lägga till det i vårt plugin eller tema.


Inkludera färgplockartillgångar

Innan jag fortsätter måste jag ange att Color Picker API infördes med WordPress version 3.5 så för att kunna arbeta igenom den här handledningen, var noga med att du har installerat version 3.5 eller senare.

För att lägga till färgväljaren, innehåller du helt enkelt en jQuery-fil och en stilarkfil. Kodslinjerna nedan visar hur du gör det.

add_action ('admin_enqueue_scripts', 'wptuts_add_color_picker'); funktion wptuts_add_color_picker ($ hook) if (is_admin ()) // Lägg till färgväljaren css-fil wp_enqueue_style ('wp-color-picker'); // Inkludera vår anpassade jQuery-fil med WordPress Color Picker-beroende wp_enqueue_script ("custom-script-handle", plugins_url ("custom-script.js", __FILE__), array ("wp-färgplockare"), falskt, sant) ; 

Observera att när vi har inkluderat anpassade-script.js med wp-färgväljar beroende. Nu kan du använda färgplockaren till dina textfält i din jQuery-fil.

(funktion ($) // Lägg till färgväljare till alla ingångar som har färgfält klass $ (funktion ) $ ('färgfält'). wpColorPicker (););) (jQuery) ;

Skapa ett plugin som använder WordPress Color Picker

Vid den här tiden är det dags att visa hur integrera färgväljaren i ett riktigt plugin.

Här är vad vi ska täcka:

  • Så här lägger du till en instrumentpanelsalternativssida som simulerar en sida med temainställningar.
  • Så här lägger du till inställningsfält som är förberedda för färgväljaren.
  • Så här validerar du och sparar inmatningar.

Steg 1

När du har ställt in ditt plugin inuti din WordPress wp-content / plugins mapp vi är redo att komma igång. Bilden nedan visar hur jag har strukturerat plugin-programmet för denna handledning. 

Plugin Structure

Steg 2

Inuti färg-picker-plugin.php fil, skriv kommentarerna med plugininfo och skapa en ny PHP-klass som heter CPA_Theme_Options. Koden nedan visar alla klassmetoder som vi ska implementera steg för steg.

/ * Plugin Name: Color Picker API Plugin URI: http://code.tutsplus.com Beskrivning: Demo om den nya Color Picker API Version: 1.0 Författare: code.tutsplus.com Författare URI: http: //code.tutsplus. com * / / ** * Huvudklass - CPA står för Color Picker API * / klass CPA_Theme_Options / * --------------------------- ----------------- * * Egenskaper * ----------------------------- --------------- * / / ** Avser en enda instans av denna klass. * / privat statisk $ instance = null; / * Sparade alternativ * / offentliga $ alternativ; / * -------------------------------------------- * * Konstruktör * -------------------------------------------- * / / ** * Skapar eller returnerar en förekomst av den här klassen. * * @return CPA_Theme_Options En enda förekomst av den här klassen. * / offentliga statiska funktion get_instance () if (null == self :: $ instance) self :: $ instance = nytt själv;  returnera själv :: $ instance;  // end get_instance; / ** * Initierar pluginprogrammet genom att ställa in lokalisering, filter och administrationsfunktioner. * / privat funktion __construct ()  / * --------------------------------------- ----- * * Funktioner * ----------------------------------------- --- * / / ** * Funktion som lägger till alternativsidan under inställningsmenyn. * / public function add_page ()  / ** * Funktion som visar alternativsidan. * / public function display_page ()  / ** * Funktion som kommer att registrera admin sida alternativ. * / public function register_page_options ()  / ** * Funktion som kommer att lägga till javascript-fil för Color Piker. * / offentlig funktion enqueue_admin_js ()  / ** * Funktion som validerar alla fält. * / public function validate_options ($ fields)  / ** * Funktion som kontrollerar om värdet är en giltig HEX-färg. * / allmän funktion check_color ($ värde)  / ** * Återuppringningsfunktion för inställningsdelen * / public function display_section () / * Lämna tomma * / / ** * Funktioner som visar fälten. * / allmän funktion title_settings_field ()  allmän funktion bg_settings_field ()  // slutklass CPA_Theme_Options :: get_instance ();

Steg 3

Låt oss först genomföra klasskonstruktören. Koden nedan visar vad plugin ska göra när en ny instans kommer att skapas.

Det kommer:

  • lägg till en ny options sida under inställningsdelen av WordPress-administratörsmenyn
  • registrera inställningsfält på alternativsidan
  • lägg till CSS stilark för WordPress Color Picker
  • lägg till en anpassad JavaScript-fil som kallar färgväljaren
  • ställa in alternativ attribut med sparade inställningar.
privat funktion __construct () // Lägg till sidan till adminmenyn add_action ('admin_menu', array (& $ this, 'add_page')); // Registrera sidalternativen add_action ('admin_init', array (& $ this, 'register_page_options')); // Css-regler för färgväljaren wp_enqueue_style ('wp-color-picker'); // Registrera javascript add_action ('admin_enqueue_scripts', array ($ this, 'enqueue_admin_js')); // Få registrerat alternativ $ this-> options = get_option ('cpa_settings_options'); 

Steg 4

Nästa steg täcker hur man lägger till alternativsidan och hur man visar den.

/ ** * Funktion som lägger till alternativsidan under inställningsmenyn. * / public function add_page () // $ page_title, $ menu_title, $ capability, $ menu_slug, $ callback_function add_options_page ('Temaalternativ', 'Temaalternativ', 'manage_options', __FILE__, array ($ this, 'display_page' ));  / ** * Funktion som visar alternativsidan. * / public function display_page () ?> 

Tema alternativ

Observera att vi redan har skrivit - inuti display_page () metod - koden som lägger till formuläret, fälten och inmatningsknappen för att registrera sidalternativ.

Steg 5

I det här steget kommer vi att implementera de metoder som kommer att registreras och visa två inställningsfält: Bloggtitel fält och Bakgrundsfärg fält. Båda fälten tillhör Tema alternativ sektion.

/ ** * Funktion som kommer att registrera admin sida alternativ. * / public function register_page_options () // Lägg till avsnitt för alternativfält add_settings_section ('cpa_section', 'Theme Options', array ($ this, 'display_section'), __FILE__); // id, titel, display cb, sida // Lägg till Titelfält add_settings_field ('cpa_title_field', 'Blog Title', array ($ this, 'title_settings_field'), __FILE__, 'cpa_section'); // id, titel, display cb, sida, avsnitt // Lägg till bakgrundsfärgfält add_settings_field ('cpa_bg_field', 'Bakgrundsfärg', array ($ this, 'bg_settings_field'), __FILE__, 'cpa_section'); // id, titel, display cb, sida, avsnitt // Registrera inställningar register_setting (__FILE__, 'cpa_settings_options', array ($ this, 'validate_options')); // alternativgrupp, alternativnamn, sanitera cb / ** * Funktioner som visar fälten. * / public function title_settings_field () $ val = (isset ($ this-> options ['title'])))? $ this-> options ['title']: "; echo"';  allmän funktion bg_settings_field () $ val = (isset ($ this-> options ['title'])))? $ this-> options ['background']: "; echo"'; 

Steg 6

Dessa steg är inriktade på validering. Koden nedan visar hur du validerar de två fälten innan du sparar dem.

/ ** * Funktion som validerar alla fält. * / public function validate_options ($ fält) $ valid_fields = array (); // Validera Titel Fält $ title = trim ($ fält ['title']); $ valid_fields ['title'] = strip_tags (stripslashes ($ title)); // Validera bakgrundsfärg $ background = trim ($ fields ['background']); $ background = strip_tags (stripslashes ($ background)); // Kontrollera om är en giltig hex-färg om (FALSE === $ this-> check_color ($ background)) // Ställ in felmeddelandet add_settings_error ('cpa_settings_options', 'cpa_bg_error', 'Infoga en giltig färg för bakgrund' , "fel"); // $ inställning, $ kod, $ meddelande, $ typ // Få föregående giltigt värde $ valid_fields ['background'] = $ this-> options ['background'];  annat $ valid_fields ['background'] = $ background;  returnera apply_filters ('validate_options', $ valid_fields, $ fält);  / ** * Funktion som kontrollerar om värdet är en giltig HEX-färg. * / public function check_color ($ value) if (preg_match ('/ ^ # [a-f0-9] 6 $ / i', $ värde)) // om användaren infogar en HEX-färg med # return true ;  returnera false; 

Om användaren försöker infoga färgkoden manuellt, meddelar färgväljaren honom eller henne att han eller hon har skrivit ett ogiltigt värde på inlämningsformuläret. Emellertid kommer färg - även om det kan vara fel - fortfarande att sparas. De check_color () funktionen tar hand om att validera färginmatningen.

Steg 7

Detta är det sista steget där vi ska inkludera vår JavaScript-fil som konverterar ett enkelt textfält i en användbar färgplockare.

/ ** * Funktion som kommer att lägga till javascript-fil för Color Piker. * / public function enqueue_admin_js () // Se till att du lägger till wp-färgplockaren beroende på js-filen wp_enqueue_script ('cpa_custom_js', plugins_url ('jquery.custom.js', __FILE__), array ('jquery' wp-färgplockare ")," true ";

Låt oss skapajquery.custom.js fil.

(funktion ($) $ (funktion () // Lägg till färgväljare till alla ingångar som har färgfält klass $ ('.cpa-färgplockare') .wpColorPicker (););) jQuery);

Om du försöker aktivera pluginet ska du få en instrumentpanelsida med alla fält som i bilden nedan:

Slutlig administratörssida

Det är allt!

I den här handledningen har du lärt dig hur du inkluderar den nya färgväljaren som drivs av WordPress. I plugin-demo har jag visat dig hur du integrerar färgväljaren i en riktig plugin, men du kan använda API-en där du behöver, t.ex. inuti en metabox, en widgetform och så vidare.

Färgväljaren fungerar med WordPress 3.5+, men om en användare har en tidigare version kommer din kod att fungera. Se till att validera varje färginmatning med hjälp av check_color () metod som visas i Steg 6.

Nu kommer dina plugins eller teman att bli kraftfullare och användarvänligare.