WordPress Theme Customizer Metodologia pentru secțiuni, setări și comenzi - Partea 2

În ultimul articol, am definit o metodologie simplă pentru tot ceea ce este necesar pentru a stabili o nouă Secțiune, Setări și Controale în Tema Customizer.

În acest articol, vom continua să facem mai multe din același lucru; cu toate acestea, vom adăuga noi setări și comenzi în secțiunea existentă, dar vom examina o varietate de opțiuni diferite, cum ar fi butoanele radio, casetele de selectare și casetele de introducere.

Deci, cu asta am spus, să continuăm.


O amintire a metodologiei noastre

Reamintim din ultimul articol că metodologia noastră este după cum urmează:

  1. Definiți o secțiune
  2. Adăugați o secțiune la secțiune
  3. Adăugați un control pentru setare
  4. Scrieți JavaScript-ul necesar
  5. Efectuați apelurile necesare get_theme_mod

Vom face acest lucru pentru fiecare nou control de la următoarele setări și comenzi. Atunci când este necesar, vom vorbi despre validarea datelor și de dezintoxicare după cum este necesar.

După ce ajungem la sfârșitul articolului, o versiune a codului acestui articol va fi, de asemenea, disponibilă pentru descărcare de la GitHub.


Modificați schema de culori

Să adăugăm o nouă opțiune la Theme Customizer, care permite utilizatorului să aleagă între schemele de culori - una este schema implicită de culoare neagră pe alb, cealaltă va fi invers.

1. Adăugați o secțiune la secțiune

Pentru a face acest lucru, mai întâi trebuie să adăugăm o setare și un control la adresa noastră tcx_register_theme_customizer funcţie. Adăugați următoarele două apeluri pentru funcții:

$ wp_customize-> add_setting ('tcx_color_scheme', array ('default' => 'normal', 'transport' => 'postMessage')); $ wp_customize-> add_control ('tcx_color_scheme', array ('section' => 'tcx_display_options', 'label' => => 'Normal', 'invers' => 'Inverse')));

Observați mai sus că adăugăm o nouă setare identificată de tcx_color_scheme ID și, evident, folosim postMessage tip de transport.

În al doilea rând, observați că am oferit și o Mod implicit valoare setată la normal. Această valoare este ceea ce ne aduce la add_control apel.

2. Adăugați un control pentru setare

Observați că le obligăm tcx_display_options pe care am definit-o în ultimul articol. I-am dat eticheta Schema de culori din moment ce, evident, ceea ce facem noi este schimbarea, iar noi o facem tip de control ca a radio buton.

Pentru a face acest lucru, trebuie să trecem o serie de opțiuni în care prima cheie este valoarea opțiunii, iar a doua valoare este eticheta pentru butonul radio.

Acest este de ce valoarea implicită pentru add_setting apelul este setat la normal.

Acum, ar trebui să ne putem salva munca, să reîmprospătăm Theme Customizer și apoi să vedem noua opțiune.

Dar, în acest moment, tot nu va face prea mult.

3. Scrieți JavaScript necesar

Acum, trebuie să intrăm js / tema-customizer.js și adăugați următorul bloc de cod:

wp.customize ('tcx_color_scheme', funcția (valoare) value.bind (funcția (la)) if ('inverse' === to) $ (' culoare: '#fff'); altceva $ ('body') .css (background: '#fff', culoare: '# 000'););

Aceasta instruiește Theme Customizer pentru a schimba corpculoarea de fundal și culoarea fontului în funcție de setarea butoanelor radio.

Prin implementarea acestui cod, ar trebui să puteți reîmprospăta Theme Customizer și apoi să vedeți schimbările apărute. Chestia este că valorile nu sunt de fapt salvate în baza de date.

4. Faceți apelurile necesare la get_theme_mod

Ultimul lucru pe care trebuie să-l implementăm pentru a ne asigura că datele sunt citite din baza de date pentru a schimba schema de culori adaugă un stil stil bloc în tcx_customizer_css funcţie:

 fundal: # 000; culoare: #fff;  fundal: #fff; culoare: # 000;  

Destul de ușor de înțeles, nu? Funcționează exact în același mod ca și codul nostru JavaScript, cu excepția faptului că se aplică de fapt temei atunci când se încarcă pagina, mai degrabă decât doar atunci când este examinată.


Schimbați fontul

Acum, vom continua procesul prin introducerea unei alte setări și a unui alt control folosind metodologia noastră, astfel încât utilizatorii noștri să poată selecta un font global pentru tema lor.

Pentru a face acest lucru, vom folosi a Selectați element cu un set de opțiuni de la care utilizatorul poate alege frontul dorit.

În acest moment, metodologia ar trebui să devină foarte familiarizată.

1. Adăugați o setare la secțiune

În primul rând, vom defini o setare pentru tcx_font pe care o vom folosi pentru a face referire în tot codul un pic mai târziu:

$ wp_customize-> add_setting ('tcx_font', array ('default' => 'ori', 'transport' => 'postMessage'));

La fel ca în setarea anterioară, ni se oferă Mod implicit valoare pe care o vom defini momentan când vom implementa un nou control.

2. Adăugați un control pentru setare

Așa cum am menționat anterior, vom oferi utilizatorilor posibilitatea de a selecta un font folosind a Selectați element. Acest lucru este foarte similar cu modul în care funcționează butoanele radio prin faptul că vom furniza o matrice cu chei și valori care definesc fontul; cu toate acestea, realitatea tip a elementului va fi diferit.

Deci, cu ceea ce a spus, adăugați următorul cod la tcx_register_theme_customizer funcţie:

$ wp_customize-> add_control ('tcx_font', array ('section' => 'tcx_display_options', 'label' => 'Theme Font', ' => 'Times New Roman', 'arial' => 'Arial', 'curier' => 'Courier New')));

Aceasta va introduce a Selectați element în Tema Customizer cu următoarele trei opțiuni pentru fonturi:

  1. Times New Roman
  2. Arial
  3. curier nou

Și acum, trebuie să scriem opțiunile de font pentru a schimba dinamic fontul temei.

3. Scrieți JavaScript necesar

Pentru a face acest lucru, deschideți-vă js / tema-customizer.js și apoi adăugați următorul bloc de cod. Rețineți că acest lucru va fi puțin mai complicat decât ceea ce suntem obișnuiți să facem în JavaScript Theme Customizer.

În primul rând, asigurați-vă că aveți var sFont definit în partea de sus a fișierului JavaScript chiar deasupra primului apel către wp.customize.

Apoi, adăugați următorul bloc de cod:

wp.customize ('tcx_font', funcția (valoare) value.bind (funcția (la)) comuta (to.toString () toLowerCase ()) times times: sFont = Times New Roman; 'arial': sFont = 'Arial'; pauză; caz 'curier': sFont = 'Courier New, Courier'; '; pauză; $ (' body ') .css (fontFamily: sFont);););

Deși funcția este puțin mai lungă, este de fapt destul de simplă: luăm valoarea primită și apoi folosim a comutator / caz pentru a determina ce font a fost selectat. Pe baza valorii selectate, o atribuim grupului sFont variabil.

Și, pentru scopuri defensive de codificare, dacă nu este definită sau ceva nu merge prost în timpul transportului, atunci vom merge la implicit Times New Roman.

În cele din urmă, aplicați apoi valoarea sFont la familie de fonturi atributul corp element folosind jQuery css funcţie.

4. Faceți apelurile necesare la get_theme_mod

Acum, în conformitate cu metodologia noastră, trebuie să ne actualizăm tcx_customizer_css astfel încât fontul să fie aplicat corect corpului.

Acesta este de fapt un simplu apel:

familie de fonturi: 

Terminat.


Personalizați Mesajul privind drepturile de autor

În cele din urmă, permiteți utilizatorului să ajusteze mesajul privind drepturile de autor care apare în partea de jos a șablonului subsolului.

Să adaptăm șablonul acum. În prezent, ar trebui să arate astfel:

© Toate drepturile rezervate

Dar să o actualizăm pentru a arăta astfel:

©

Deși asta se întâmplă putin înainte de metodologia noastră, este necesar să definim astfel încât Theme Customizer să poată profita de noul deschidere element, astfel încât să putem afișa mesajul privind drepturile de autor definit de utilizator.

1. Adăugați o setare la secțiune

În primul rând, vom introduce setarea noastră finală:

$ wp_customize-> add_setting ('tcx_footer_copyright_text', array ('default' => 'Toate drepturile rezervate', 'sanitize_callback' => 'tcx_sanitize_copyright', 'transport' => 'postMessage'));

Dar observați aici, există un lucru diferit de intrările anterioare și aceasta este cheia și valoarea "sanitize_callback". Aceasta definește o funcție de foc atunci când datele sunt serializate în baza de date - la urma urmei, nu conținutul ilegal care o face în baza de date.

Deci, faceti asta, vom defini o functie numita tcx_sanitize_copyright care va elimina orice etichete, tăieturi și alte etichete ilegale care ar trebui să fie serializate în baza de date:

funcția tcx_sanitize_copyright ($ input) retur strip_tags (stripslashes ($ input)); 

Pur și simplu returnează valoarea inputului dezinfectat.

2. Adăugați un control pentru setare

Apoi, este timpul să adăugați controlul real al setării.

$ wp_customize-> add_control ('tcx_footer_copyright_text', array ('section' => 'tcx_display_options', 'label' => 'Mesaj de copyright', 'type' => 'text'));

Aici, din nou, îl obligăm la tcx_display_options și îi oferim etichetei "Mesaj cu privire la drepturile de autor" pentru ca utilizatorii să poată fi citiți. În cele din urmă, am definit acest lucru ca a text intrare.

Desigur, în acest moment, știi că nu reușim să facem nimic cu controlul până când nu l-am conectat la JavaScript.

3. Scrieți JavaScript necesar

JavaScript pentru acest lucru este foarte ușor, mai ales dacă ați dat deschidere un ID unic așa cum am făcut mai sus.

wp.customize ('tcx_footer_copyright_text', funcția (valoare) value.bind (funcția (to) $ ('# copyright-message') .text (to););

În esență, este nevoie de valoarea la argument și apoi îl stabilește ca valoare a deschidere's text.

4. Faceți apelurile necesare la get_theme_mod

În sfârșit, deși am făcut-o deja în șablon, vom continua și vom examina codul aici:

©

Observați că citim valoarea tcx_footer_copyright_text și apoi tipăm valoarea pe ecran.


Urmeaza…

Și pentru moment, asta-i tot! Am aruncat o privire asupra unora dintre controalele de bază, dat fiind că utilizatorul deține un control semnificativ asupra aspectului acestei teme, chiar dacă este foarte tematică, și ne-am referit la modul de introducere a dezinfectării datelor împreună cu procesul de serializare.

Singurul lucru pe care trebuie să-l acoperiți sunt unele dintre cele mai avansate și mai avansate controale pe care le oferă WordPress. Astfel, în următorul articol, vom examina unele dintre aceste caracteristici și modul de implementare a acestora.

!

Cod