1. 1. Introduksjon til WordPress Theme Customizer
  2. 2. Samhandler med WordPress Theme Customizer
  3. 3. WordPress Theme Customizer Kjeleplate
  4. 4. Leser for øyeblikket: Utvide WordPress Theme Customizer Boilerplate
  5. 5. Theme Customizer Kjeleplate – Betingede alternativer, temaer og plugins for barn

Del 3 av Theme Customizer-serien introduserte deg for Theme Customizer Boilerplate som lar deg forenkle kode som håndterer temaalternativene. Alt du trenger å gjøre er å passere en rekke alternativfelt, og kjeleplaten vil ta seg av registrering av Theme Customizer-seksjoner, innstillinger og kontroller for deg bak kulissene.


Til nå kjeleplate tillot deg å bruke tekstfelt, avmerkingsbokser, alternativknapper og velge felt i Theme Customizer. Denne artiklene viser deg hvordan du kan utvide det.

Merk: Før du fortsetter, kan du laste ned den nyeste versjonen av WordPress Theme Customizer Boilerplate fra Github-depotet. Jeg har gjort noen forbedringer siden sist opplæring, og det er viktig at koden din er oppdatert. Se på forrige innlegg for flere notater om endringer, men når du kopierer kjeleplaten til temamappen, trenger du ikke å redigere filene i det hele tatt – du trenger ikke å redigere filene i det hele tatt – all redigering gjøres ved hjelp av filter og handlingskroker.

Hooking to Theme Customizer Kjeleplate

Det er flere action- og filterkroker i WordPress Theme Customizer Boilerplate. Du kan koble deg til hvilken som helst av dem fra temaets funksjoner.php-fil ved å bruke ADD_ACTION og add_filter funksjoner:

  • ‘Thsp_cbp_directory_uri’ – Filterkrok definert i helpers.php, lar deg endre plassering av Customizer Boilerplate i temamappen. Som standard ser kjeleplaten ut slik – get_template_directory_uri (). ‘/ Tilpasser-tekst’ – men hvis du heller vil flytte den til et tilpasset sted, er dette kroken som kan hjelpe deg.
  • ‘Thsp_cbp_menu_link_text’ – Filterkrok definert i helpers.php, lar deg endre menytekstlink. Kjeleplate legger til en kobling under Utseende i WordPress-instrumentbordet, slik at brukerne får enkel tilgang til Theme Customizer. Som standard vil den lenken si “Theme Customizer”, og du kan endre teksten ved å bruke “thsp_cbp_menu_link_text” filterkroken.
  • ‘Thsp_cbp_capability’ – Filterkrok definert i helpers.php. Lar deg endre standard nødvendig funksjonalitet som brukes i $ wp_customize-> add_setting metode.
  • ‘Thsp_cbp_option’ – Filterkrok definert i helpers.php. Hvis du bruker “alternativet” i innstillingsargumentene dine, kan du bruke denne kroken til å endre navnet på oppføringen dine temainnstillingsverdier blir lagret under i wp_options-tabellen. Standardverdien er “thsp_cbp_theme_options”, sørg for at du kobler deg til denne og endrer den til noe som har ditt temanavn i seg..
  • ‘Thsp_cbp_options_array’ – Filterkrok definert i options.php, MÅ du koble deg inn i den og erstatte standardalternativsarrayen (som inneholder eksempler på alternativer) med alternativer som brukes i ditt tema. Jeg vil gjenta det, fremhev det og understreke det: You MÅ koble deg til den og erstatte standardalternativet med alternativer som brukes i temaet ditt.
  • ‘thsp_cbp_custom_controls’ – Handlingskrok definert i custom-controls.php, ved å koble deg inn i den kan du lage dine egne tilpassede kontroller, fortsette å lese for å se et eksempel på hvordan du gjør det.
  • ‘tshp_cbp_remove_sections’‘tshp_cbp_remove_controls’ og ‘tshp_cbp_remove_settings’ – Filterkroker definert i customizer.php. Du kan gi dem matriser av innebygde seksjons-ID-er (eller kontroller-IDer, eller innstillings-ID-er) for å fjerne noen av de innebygde seksjonene, kontrollene eller innstillingene.

Merk: Mens vi er i utvidbarhet og lager dine egne kroker slik at andre utviklere kan bruke dem til å utvide koden din, er det umulig å overdrive hvor viktig dette er. Det er tross alt slik WordPress (core) fungerer. Og jeg kunne ikke takke Pippin og hans artikler nok til å få denne ideen inn i hodet mitt.

Tilpassede kontroller

Den oppdaterte versjonen av Theme Customizer (som du nettopp sjekket ut, ikke sant?) Har noen få flere kontroller du kan bruke – tekstfeltfelt, HTML5-nummerfelt og bilderfelt, som i utgangspunktet er en fancy versjon av radioknapper.

Disse tilpassede kontrollene er definert i custom-controls.php. Jeg vil ikke gå gjennom dem alle her, men la oss se på ett (HTML5-nummerfelt) for å se hvordan det hele fungerer:

/ **
* Oppretter Customizer-kontroll for inntastingsfeltet [type = antall]
*
* @since Theme_Customizer_Boilerplate 1.0
* /
klasse CBP_Customizer_Number_Control utvider WP_Customize_Control {

offentlig $ type = 'nummer';

offentlig funksjon render_content () {
ekko '';
}

}

Som du kan se, alt du trenger å gjøre er å definere ny kontroll $ -type og render_content-funksjonen som gir ut kontrollen i skjermen Theme Customizer.

Bruke Customizer Boilerplates innebygde tilpassede kontroller

Det er det samme som enkle felt dekket i forrige opplæring. Det eneste du trenger å være klar over er ‘typer’ du trenger å bruke for hver enkelt:

  • Nummerfelt – ‘Antall’
  • Textarea felt – ‘Textarea’
  • Bilder som fungerer som radioknapper – ‘Images_radio’, her er et eksempel på denne kontrollen i en kommende gratis Cazuela-tema:

Theme Customizer Kjeleplate

Det er enkelt å kjenne navn på disse nye kontrolltypene og legge til en. Slik kan du legge til en nummerfeltkontroll i matrisen som inneholder alle alternativene dine:

/ *
* ============
* ============
* Tallfelt
* ============
* ============
* /
'new_number_field' => matrise (
'setting_args' => matrise (
'default' => '',
'type' => 'alternativ',
'capability' => $ thsp_cbp_capability,
'transport' => 'oppdater',
),
'control_args' => matrise (
'label' => __ ('Number', 'my_theme_textdomain'),
'type' => 'nummer', // Textarea-kontroll
'prioritet' => 8
)
)

Merk: Hvis du ikke er sikker på hvor du vil legge til dette, kan du merke av for “Bruke Alternativer-array for å legge til tilpassingsseksjoner, innstillinger og kontroller” i del 3 av denne serien. Det er også en prøve for hver enkelt tilpassede kontroll i filen option.php.

Legge til dine egne tilpassede kontroller

La oss komme tilbake til “thsp_cbp_custom_controls” handlingen krok jeg nevnte tidligere:

/ **
* Handlingskrok som lar deg lage dine egne kontroller
* /
do_action ('thsp_cbp_custom_controls');

Det er en enkel WordPress-handlingskrok som lar deg legge til dine egne tilpassede kontroller uten å endre Theme Customizer Boilerplate-filer. Hvorfor vil du unngå å redigere dem? For hvis du i stedet kobler deg til kjeleplaten, når noen oppdaterer den, kan du bare ta tak i den nyeste versjonen, slippe den inn i temaet ditt og ikke miste endringene du har gjort. Tenk redigering av WordPress kjernefiler kontra å skrive en plugin, redigere et tema kontra å lage et barn tema osv.

Hvis du noen gang trenger å legge til dine egne tilpassede kontroller, er det slik du kan gjøre det:

funksjon my_theme_add_customizer_boilerplate_control () {
/ **
* Lager tilpasset kontroll som skal brukes med Theme Customizer Boilerplate
* Bruk et unikt klasseprefiks!
*
* @since Theme_Customizer_Boilerplate 1.0
* /
klasse CBP_Customizer_My_Control utvider WP_Customize_Control {

public $ type = 'my_type'; // Endre dette

offentlig funksjon render_content () {
// Kontrollutgang går her
}

}
}
add_action ('thsp_cbp_custom_controls', 'my_theme_add_customizer_boilerplate_control');

Forsikre deg om at du prefikser den tilpassede kontrollklassen din med noe unikt, så navnet kommer ikke i konflikt med en annen klasse. Jeg brukte ‘CBP_’ (Customizer Boilerplate) – siden du bruker kjeleplate i et tema, gir temaet ditt mye mening og burde fungere fint for deg.

Tematilpassing: Hva er neste?

Nå som WordPress Theme Customizer Boilerplate er utvidbar gjennom kroker, tar vi en titt på for å legge til “betingede temaalternativer” – de som bare vil vises hvis en viss plugin er aktiv og hjelper deg med å holde skjerm for Theme Customizer avkjørt.

Hva er tankene dine om Customizer Boilerplate så langt? Har du planer om å bruke det i temaene? Noen ideer om hvordan det kan forbedres? Din tilbakemelding er alltid velkommen.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me