Ploča s kotlovnicom za prilagodbu tema – uvjetne mogućnosti, teme za djecu i dodaci

  1. 1. Uvod u WordPress alat za prilagodbu tema
  2. 2. Interakcija s alatom za prilagodbu teme WordPress
  3. 3. WordPress Tema za prilagodbu teme kotlovske ploče
  4. 4. Proširenje ploče s kotlovskom pločicom za prilagodbu teme WordPress
  5. 5. Trenutno čitam: Ploča s kotlovnicom za prilagodbu tema – uvjetne mogućnosti, teme za djecu i dodaci

Do sada smo vidjeli kako je jednostavno upravljati opcijama tema pomoću tematske prilagodničke bojlere i njegovih kuka. Kao što se vjerojatno sjećate, najvažniji korak bio je spajanje s njima „Thsp_cbp_options_array” kuka za filtriranje i prosljeđivanje je niz opcija koje želite koristiti u svojoj temi.


Siguran sam da ste već upoznati sa WordPress akcijom i kukama za filtriranje – Plugin API – i kako funkcioniraju, ali za svaki slučaj, evo kratkog sažetka (pomoću primjera filtera). Možete definirati svoju prilagođenu funkciju i spojiti je u postojeći filtar pomoću funkcije add_filter:

add_filter ($ tag, $ function_to_add, $ prioritet, $ accept_args);

Usredotočimo se na argument prioriteta. Zadana mu je vrijednost 10, pa ako ne upotrebljavate neki drugi broj, to će biti prioritet izvršavanja vaše funkcije. Smanjite broj i ranije se izvršava vaša funkcija. Dakle, ako napravite ovako nešto:

// Dodavanje prve poruke
funkcija my_theme_add_first_message ($ sadržaj) {
$ sadržaj. = '

Prva poruka

„; vratiti $ sadržaj; } add_filter ('the_content', 'my_theme_add_first_message', 1); // Dodavanje druge poruke funkcija my_theme_add_second_message ($ sadržaj) { $ sadržaj. = '

Druga poruka

„; vratiti $ sadržaj; } add_filter ('the_content', 'my_theme_add_second_message', 2);

Kada nazovete funkciju_content u single.php ili bilo kojem drugom obliku prikazaće se sadržaj posta, a zatim Prva poruka, a zatim Druga poruka. Ne zato što je to njihov redoslijed u ovom isječku koda, već zbog parametra prioriteta izvršenja. Zamislite kuke kao da su snježne kugle koje se kotrljaju niz brdo, hvatajući sve vrste stvari na putu.

Kako se to odnosi na tematsku ploču s bojlerima?

Možete se priključiti „Thsp_cbp_options_array” iz datoteke function.php vaše teme koristeći prilagođenu funkciju (npr. my_theme_options_array) s vrijednošću prioriteta postavljenom na 1. To znači bilo koju drugu funkciju koja se zakači na „Thsp_cbp_options_array” kuka za filtriranje to će učiniti NAKON funkcije my_theme_options_array koju ste već definirali. Pogledajte ovaj primjer:

funkcija my_theme_options_array () {
// Korištenje pomoćne funkcije za dobivanje zadane potrebne mogućnosti
$ thsp_cbp_capability = thsp_cbp_capability ();

$ options = niz (
// ID odjeljka
'my_theme_new_section' => niz (

'postojeća_sekcija' => netočno,
'args' => niz (
'title' => __ ('Novi odjeljak', 'my_theme_textdomain'),
'prioritet' => 10
),
'polja' => niz (
/ *
* Radio polje
* /
'my_radio_button' => niz (
'setting_args' => niz (
'zadano' => 'opcija-2',
'type' => 'opcija',
'sposobnost' => $ thsp_cbp_capability,
'transport' => 'osvježi',
),
'control_args' => niz (
'label' => __ ('Moja radio tipka', 'my_theme_textdomain'),
'type' => 'radio', // Radio kontrola
'choices' => niz (
'option-1' => niz (
'label' => __ ('Opcija 1', 'my_theme_textdomain')
),
'option-2' => niz (
'label' => __ ('Opcija 2', 'my_theme_textdomain')
),
'option-3' => niz (
'label' => __ ('Opcija 3', 'my_theme_textdomain')
)
),
'prioritet' => 3
)
)
)
)
);

vratiti $ opcije;
}
add_filter ('thsp_cbp_options_array', 'my_theme_options_array', 1);

To će dodati Novi odjeljak programu za prilagodbu tema s jednim poljem u njemu, nazvanim gumb Moja radio. Tada vi ili netko drugi razvija dječju temu za vašu temu i odlučuje zadržati New Section, ali umjesto gumba My Radio možda bi bilo bolje imati My Checkbox. Lako:

funkcija my_child_theme_options_array ($ opcije) {
// Korištenje pomoćne funkcije za dobivanje zadane potrebne mogućnosti
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Ovaj put uređujemo samo polja u mom_theme_new_section u nizu $ options
* /
$ options ['my_theme_new_section'] ['polja'] = niz (
'my_checkbox_field' => niz (
'setting_args' => niz (
'zadano' => točno,
'type' => 'opcija',
'sposobnost' => $ thsp_cbp_capability,
'transport' => 'osvježi',
),
'control_args' => niz (
'label' => __ ('Moj Checkbox', 'my_theme_textdomain'),
'type' => 'checkbox', // kontrola polja za potvrdni okvir
'prioritet' => 2
)
)
);

vratiti $ opcije;
}
add_filter ('thsp_cbp_options_array', 'my_child_theme_options_array', 2);

Primijetio sam da parametar $ options nisam proslijedio my_theme_options_array i učinio to u funkciji my_child_theme_options_array? To je zato što sam se prvi put priključila „Thsp_cbp_options_array” kuka Htio sam poništiti opcije uzorka tematske prilagodnice kotlovske ploče. Tada, kad sam se ponovo povezao s mojom dječjom temom, nisam želio u potpunosti izbrisati mogućnosti roditeljske teme, samo ih malo urediti. Zato sam zabrljao samo s $ opcijama [‘my_theme_new_section’] [‘polja’], a ne cijelom nizom opcija $.

Naravno, možete se i priključiti „Thsp_cbp_options_array” filtrirajte udicu iz teme vašeg roditelja više puta. Recimo da ste odlučili da svojoj temi ne dodajete značajke teritorija dodataka i dopustite da dodaci rade ono što trebaju. Sada želite pokazati neke opcije Prilagoditelja tema samo ako je aktivan određeni dodatak. Ponovo jednostavno:

funkcija my_plugin_dependency_options_array ($ opcije) {
// Korištenje pomoćne funkcije za dobivanje zadane potrebne mogućnosti
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Dodavanje my_plugin_dependency_section samo ako je aktivan 'test-plugin.php'
* /
if (is_plugin_active ('test-dodatak / test-plugin.php')) {

$ options ['my_plugin_dependency_section'] = niz (
'postojeća_sekcija' => netočno,
'args' => niz (
'title' => __ ('Ovisnost dodataka', 'my_theme_textdomain'),
'prioritet' => 10
),
'polja' => niz (
/ *
* Polje za tekst
* /
// ID polja
'new_text_field' => niz (
'setting_args' => niz (
'default' => __ ('', 'my_theme_textdomain'),
'type' => 'opcija',
'sposobnost' => $ thsp_cbp_capability,
'transport' => 'osvježi',
),
'control_args' => niz (
'label' => __ ('Prikazuje samo ako', 'my_theme_textdomain'),
'type' => 'text', // Kontrola tekstualnog polja
'prioritet' => 5
)
),
)
);

}

vratiti $ opcije;
}
add_filter ('thsp_cbp_options_array', 'my_plugin_dependency_options_array', 3);

Želite li razviti jezgra funkcionalnosti dodatak da se koristi s vašom temom (kao što bi trebali)? Možete se priključiti „Thsp_cbp_options_array” iz jedne od datoteka vaših dodataka, na isti način kao što ste to učinili iz funkcije funkcije teme.php.

Nemojte ići za opcijama ludo

Svaki put kada dodajete opcije temi koju razvijate trebate se pridržavati jednog od glavnih načela WordPressa – Odluka nije opcija – na umu. Lako se oduševiti i početi dodavati korisničke opcije za svaki manji detalj koji vaša tema ima, ali to nikome ne čini uslugu. Nadam se da će ovih nekoliko trikova, posebno dodavanje opcija ovisnih o dodatcima, pomoći da se opcije vaših tema broje što je moguće niže.

Napokon, ako vaša tema ima mogućnosti poput stvari kao što je svaki polumjer obruba svakog pojedinog elementa, to nije tema, to je WYSIWYG uređivač i vjerojatno nije sjajna.

Ne kupujete bijelu košulju jer je uz dodatni napor možete je pretvoriti u stolnjak, nego je kupite jer volite njenu “bijelinu”. Teme s WordPressom također bi trebale biti takve, trebale bi prezentirati sadržaj na određeni način, a ne pokušavati raditi sve na zamisliv način. Ako ste programer tema, vaš je posao osigurati očekivanja korisnika kakva bi trebala biti.

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