Udvidelse af WordPress Theme Customizer-kedelplade

  1. 1. Introduktion til WordPress Theme Customizer
  2. 2. Interagerer med WordPress Theme Customizer
  3. 3. WordPress Theme Customizer Kedelplade
  4. 4. I øjeblikket læser: Udvidelse af WordPress Theme Customizer-kedelplade
  5. 5. Tema Customizer Kedelplade – Betingede muligheder, Børnetemaer og plugins

Del 3 af Theme Customizer-serien introducerede dig til Theme Customizer Boilerplate, som giver dig mulighed for at forenkle kode, der håndterer dine temaindstillinger. Alt hvad du skal gøre er at videregive en række optionfelter, og kedelpladen sørger for at registrere Theme Customizer-sektioner, indstillinger og kontroller til dig bag kulisserne.


Indtil nu har kedelpladen tilladt dig at bruge tekstfelter, afkrydsningsfelter, radioknapper og vælge felter i Theme Customizer. Denne artikel viser dig, hvordan du kan udvide det.

Bemærk: Inden du fortsætter, skal du downloade den nyeste version af WordPress Theme Customizer Boilerplate fra dens Github-opbevaring. Jeg har foretaget nogle forbedringer af det siden sidste tutorial, og det er vigtigt, at din kode er opdateret. Se på det forrige indlæg for flere bemærkninger om ændringer, men kort sagt, når du kopierer kedelpladen til din temamappe, behøver du ikke at redigere dens filer overhovedet – al redigering udføres ved hjælp af filter- og handlingskroge.

Tilslutter sig temaet Customizer-kedelplade

Der er flere handlings- og filterkroge i WordPress Theme Customizer-kedelpladen. Du kan tilslutte en hvilken som helst af dem fra dit temas funktioner.php-fil ved hjælp af ADD_ACTION og add_filter funktioner:

  • ’Thsp_cbp_directory_uri’ – Filterkrog defineret i helpers.php, giver dig mulighed for at ændre placering af Customizer Boilerplate i din temamappe. Som standard ser kedelpladsen sådan ud – get_template_directory_uri (). ’/ Customizer-standardtekst’ – men hvis du hellere vil flytte den til et brugerdefineret sted, er dette krogen, der kan hjælpe dig.
  • ’Thsp_cbp_menu_link_text’ – Filterkrog defineret i helpers.php, så du kan ændre menytekstlink. Kedelplade tilføjer et link under Udseende i WordPress-instrumentbrættet, så brugerne får let adgang til Theme Customizer. Som standard vil det link sige “Theme Customizer”, og du kan ændre teksten ved hjælp af ‘thsp_cbp_menu_link_text’ filterkrog.
  • ’Thsp_cbp_capability’ – Filterkrog defineret i helpers.php. Tillader dig at ændre den krævede standardkapacitet, der bruges i $ wp_customize-> add_setting-metoden.
  • ’Thsp_cbp_option’ – Filterkrog defineret i helpers.php. Hvis du bruger ‘option’ i dine indstillingsargumenter, skal du bruge denne krog til at ændre navnet på den post, dine værdier for temaindstillinger gemmes under i wp_options-tabellen. Standardværdien er ‘thsp_cbp_theme_options’, sørg for at tilslutte dig denne og ændre det til noget, der har dit temanavn i det.
  • ’Thsp_cbp_options_array’ – Filtreringskrog defineret i option.php, SKAL du koble dig ind i den og erstatte standardindstillingsarray (indeholdende prøveindstillinger) med indstillinger, der bruges i dit tema. Det gentager jeg, med fed skrift og understreger det: You SKAL tilslutte den og udskifte standardindstillingspanelet med indstillinger, der bruges i dit tema.
  • ’thsp_cbp_custom_controls’ – Handlingskrog defineret i custom-controls.php, ved at tilslutte den kan du oprette dine egne brugerdefinerede kontroller, fortsat læse for at se et eksempel på, hvordan du gør det.
  • ’tshp_cbp_remove_sections’’tshp_cbp_remove_controls’ og ’tshp_cbp_remove_settings’ – Filterkroge defineret i customizer.php. Du kan videregive dem matriser af indbyggede sektions-id’er (eller kontrol-id’er eller indstillings-id’er) for at fjerne nogle af de indbyggede sektioner, kontroller eller indstillinger.

Bemærk: Mens vi er ved at udvide og skabe dine egne kroge, så andre udviklere kan bruge dem til at udvide din kode, er det umuligt at overdrive, hvor vigtigt dette er. Når alt kommer til alt er det sådan, WordPress (core) fungerer. Og jeg kunne ikke takke Pippin og hans artikler nok til at få denne idé ind i mit hoved.

Tilpassede kontroller

Den opdaterede version af Theme Customizer (som du lige har tjekket ud, ikke?) Har et par flere kontroller, du kan bruge – tekstarea-felt, HTML5-nummerfelt og billedfelt, som stort set er en smarte version af radioknapper.

Disse brugerdefinerede kontroller er defineret i custom-controls.php. Jeg vil ikke gennemgå dem alle her, men lad os se på et (HTML5-nummerfelt) for at se, hvordan det hele fungerer:

/ **
* Opretter Customizer-kontrol til inputfeltet [type = nummer]
*
* @since Theme_Customizer_Boilerplate 1.0
* /
klasse CBP_Customizer_Number_Control udvider WP_Customize_Control {

offentlig $ type = 'nummer';

offentlig funktion render_content () {
ekko '';
}

}

Som du kan se, er alt hvad du skal gøre at definere ny kontrol $ -type og dens render_content-funktion, der udsender kontrollen på skærmen Theme Customizer.

Brug af Customizer Boilerplate’s indbyggede brugerdefinerede kontroller

Det er det samme som enkle felter, der er dækket af tidligere tutorial, det eneste, du skal være opmærksom på, er ‘typer’, du skal bruge til hver enkelt:

  • Antal felt – ‘nummer’
  • Textarea felt – ’Textarea’
  • Billeder, der fungerer som radioknapper – ’Images_radio’, her er et eksempel på denne kontrol i en kommende gratis Cazuela tema:

Tema Customizer Kedelplade

Det er let at kende navne på disse nye kontroltyper og tilføje en. Sådan kan du tilføje en nummerfeltkontrol til matrix, der indeholder alle dine muligheder:

/ *
* ============
* ============
* Antal felt
* ============
* ============
* /
'new_number_field' => matrix (
'setting_args' => matrix (
'default' => '',
'type' => 'mulighed',
'capability' => $ thsp_cbp_capability,
'transport' => 'opdater',
),
'control_args' => matrix (
'label' => __ ('Number', 'my_theme_textdomain'),
'type' => 'nummer', // Textarea-kontrol
'prioritet' => 8
)
)

Bemærk: Hvis du ikke er sikker på, hvor du skal tilføje dette, skal du markere afsnittet “Brug af valgmuligheder for at tilføje tilpassede sektioner, indstillinger og kontroller” i del 3 af denne serie. Der er også en prøve til hver enkelt af brugerdefinerede kontroller i filen option.php.

Tilføjelse af dine egne brugerdefinerede kontroller

Lad os komme tilbage til ‘thsp_cbp_custom_controls’ handlingskrog, som jeg nævnte tidligere:

/ **
* Handlingskrog, der giver dig mulighed for at oprette dine egne kontroller
* /
do_action ('thsp_cbp_custom_controls');

Det er en simpel WordPress-handlingskrog, der giver dig mulighed for at tilføje dine egne brugerdefinerede kontroller uden at ændre Theme Customizer Boilerplate-filer. Hvorfor vil du undgå at redigere dem? For hvis du i stedet tilslutter dig kedelpladen, når nogen opdaterer den, kan du bare gribe den seneste version, slippe den ind i dit tema og ikke miste de ændringer, du har foretaget. Tænk redigering af WordPress kernefiler vs. skrivning af et plugin, redigering af et tema vs. oprettelse af et underordnet tema osv.

Hvis du nogensinde har brug for at tilføje dine egne brugerdefinerede kontroller, er det sådan, du kan gøre det:

funktion my_theme_add_customizer_boilerplate_control () {
/ **
* Opretter brugerdefineret kontrol til brug med Theme Customizer Boilerplate
* Brug et unikt klassepræfiks!
*
* @since Theme_Customizer_Boilerplate 1.0
* /
klasse CBP_Customizer_My_Control udvider WP_Customize_Control {

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

offentlig funktion render_content () {
// Kontroloutput går her
}

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

Sørg for, at du præfikser din brugerdefinerede kontrolklasse med noget unikt, så navnet ikke sammenstød med en anden klasse. Jeg brugte ‘CBP_’ (Customizer Boilerplate) – da du bruger kedelpladen i et tema, giver dit temas navn meget mening og burde fungere fint for dig.

Tematilpasning: Hvad er det næste?

Nu hvor WordPress Theme Customizer-kedelpladen er udvidelig gennem kroge, vil vi se på for at tilføje “betingede temaindstillinger” – dem, der kun vises, hvis en bestemt plugin er aktiv og hjælper dig med at holde skærmbilledet Theme Customizer deaktiveret.

Hvad er dine tanker om Customizer Boilerplate indtil videre? Planlægger du at bruge det i dine temaer? Eventuelle ideer til, hvordan det kunne forbedres? Din feedback er altid velkommen.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map