Teeman mukauttajan kattilalevy – ehdolliset vaihtoehdot, lapsiteemat ja laajennukset

  1. 1. Johdanto WordPress-teeman mukauttajaan
  2. 2. Vuorovaikutus WordPress Theme Customizer -sovelluksen kanssa
  3. 3. WordPress Theme Customizer -kattilalevy
  4. 4. WordPress-teeman räätälöintilaitteiston laajentaminen
  5. 5. Luettu tällä hetkellä: Teeman mukauttajan kattilalevy – ehdolliset vaihtoehdot, lapsiteemat ja laajennukset

Toistaiseksi olemme nähneet, kuinka helppoa on teemavaihtoehtojen käsitteleminen Teeman mukauttamisen kattilalevyn ja sen koukkujen avulla. Kuten todennäköisesti muistat, tärkein askel oli kiinnittäminen ’Thsp_cbp_options_array’ suodata koukku ja lähetä se joukko vaihtoehtoja, joita haluat käyttää teemaasi.


Olen varma, että olet jo perehtynyt WordPress-toimintoihin ja suodatinkoukkuihin – Plugin API: iin – ja miten ne toimivat, mutta joka tapauksessa, tässä on nopea kertaus (esimerkki suodatinkoukkuista). Voit määrittää mukautetun toiminnon ja liittää sen olemassa olevaan suodattimeen käyttämällä add_filter-toimintoa:

add_filter ($ tag, $ function_to_add, prioriteetti $, $ hyväksytty merkinnät);

Keskitytään ensisijaisiin perusteisiin. Sen oletusarvo on 10, joten jos et käytä toista numeroa, se on funktion suoritusprioriteetti. Laske numeroa, aiemmin toiminto suoritetaan. Joten jos teet jotain tällaista:

// Ensimmäisen viestin lisääminen
toiminto my_theme_add_first_message ($ content) {
$ content. = '

Ensimmäinen viesti

'; palauta $ sisältö; } add_filter ('the_content', 'my_theme_add_first_message', 1); // Toisen viestin lisääminen toiminto my_theme_add_second_message ($ content) { $ content. = '

Toinen viesti

'; palauta $ sisältö; } add_filter ('the_content', 'my_theme_add_second_message', 2);

Kun soitat_sisältötoiminnolle single.php-tiedostossa, näytetään jokin muu malliviestin sisältö, jota seuraa ensimmäinen viesti ja toinen viesti. Ei siksi, että heidän järjestyksensä on tässä koodinpätkässä, vaan suorituksen prioriteettiparametrin takia. Ajattele koukkuja ikään kuin ne olisivat rinteestä rullalle jääviä lumipalloja, jotka poimisivat kaikenlaisia ​​juttuja matkallaan.

Kuinka tämä koskee teeman mukauttamisen kattilalevyä?

Voit kiinnittää ’Thsp_cbp_options_array’ teeman function.php-tiedostosta käyttämällä mukautettua toimintoa (esim. my_theme_options_array), jonka prioriteettiarvo on 1. Tämä tarkoittaa mitä tahansa muuta toimintoa, ’Thsp_cbp_options_array’ suodatinkoukku tekee sen jo määrittämäsi my_theme_options_array-toiminnon JÄLKEEN. Katsokaa tätä esimerkkiä:

toiminto my_theme_options_array () {
// Auttaja-toiminnon käyttäminen vaaditun oletusominaisuuden saamiseksi
$ thsp_cbp_capability = thsp_cbp_capability ();

$ options = array (
// Osion tunnus
'my_theme_new_section' => taulukko (

'olemasoleva_sekti' => väärä,
'args' => taulukko (
'otsikko' => __ ('Uusi osio', 'oma_teema_tekstiverkkotunnus'),
'prioriteetti' => 10
),
'kentät' => taulukko (
/ *
* Radiokenttä
* /
'my_radio_button' => taulukko (
'setting_args' => taulukko (
'oletus' => 'vaihtoehto-2',
'type' => 'option',
'ominaisuus' => $ thsp_cbp_capability,
'kuljetus' => 'päivitä',
),
'control_args' => taulukko (
'label' => __ ('My Radio Button', 'my_theme_textdomain'),
'type' => 'radio', // Radio-ohjaus
'valinnat' => taulukko (
'vaihtoehto-1' => taulukko (
'label' => __ ('Vaihtoehto 1', 'my_theme_textdomain')
),
'vaihtoehto-2' => taulukko (
'label' => __ ('Vaihtoehto 2', 'my_theme_textdomain')
),
'vaihtoehto-3' => taulukko (
'label' => __ ('Vaihtoehto 3', 'my_theme_textdomain')
)
),
'prioriteetti' => 3
)
)
)
)
);

palauta $ vaihtoehdot;
}
add_filter ('thsp_cbp_options_array', 'my_theme_options_array', 1);

Tämä lisää uuden osan Teeman mukauttaja -sovellukseen, jossa on yksi kenttä, nimeltään My Radio Button. Sitten sinä tai joku muu kehittää aiheesi lapsiteeman ja päättää pitää uuden osan, mutta Oma radio -painikkeen sijasta saattaa olla parempi, että Omat valintaruudut on. Helppo:

toiminto my_child_theme_options_array ($ options) {
// Auttaja-toiminnon käyttäminen vaaditun oletusominaisuuden saamiseksi
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Tällä kertaa muokkaamme vain my_theme_new_section -kenttiä $ options-taulukossa
* /
$ options ['my_theme_new_section'] ['kentät'] = taulukko (
'my_checkbox_field' => taulukko (
'setting_args' => taulukko (
'oletus' => totta,
'type' => 'option',
'ominaisuus' => $ thsp_cbp_capability,
'kuljetus' => 'päivitä',
),
'control_args' => taulukko (
'label' => __ ('Oma valintaruutu', 'my_theme_textdomain'),
'type' => 'valintaruutu', // Valintaruudun kentän hallinta
'prioriteetti' => 2
)
)
);

palauta $ vaihtoehdot;
}
add_filter ('thsp_cbp_options_array', 'my_child_theme_options_array', 2);

Huomasitko, että en siirtänyt $ options-parametria my_theme_options_array -sovellukseen ja tein sen my_child_theme_options_array -toiminnossa? Se johtuu siitä, kun aloitin koukun ’Thsp_cbp_options_array’ koukku Halusin ohittaa Teeman mukauttamisen kattilalevyn näytevaihtoehdot. Sitten kun kiinnitin sen uudelleen lastenteemaan, en halunnut poistaa kokonaan vanhemman teeman vaihtoehtoja, vaan vain muokata niitä. Siksi sekoitan vain $ options [‘my_theme_new_section’] [‘kentät]], ei koko $ options taulukkoa.

Voit tietenkin myös koukkua ’Thsp_cbp_options_array’ suodata koukku vanhemmasta teemastasi useammin kuin kerran. Oletetaan, että et lisännyt laajennuksen alueominaisuuksia teemaasi ja anna laajennusten tehdä mitä heillä on tarkoitus. Nyt haluat näyttää joitain Theme Customizer -vaihtoehtoja vain, jos tietty laajennus on aktiivinen. Jälleen helppo:

toiminto my_plugin_dependency_options_array ($ options) {
// Auttaja-toiminnon käyttäminen vaaditun oletusominaisuuden saamiseksi
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Lisäämällä minun_plugin_dependency_section vain, jos 'test-plugin.php' on aktiivinen
* /
if (is_plugin_active ('test-plugin / test-plugin.php'))) {

$ options ['my_plugin_dependency_section'] = taulukko (
'olemasoleva_sekti' => väärä,
'args' => taulukko (
'title' => __ ('Plugin Dependency', 'my_theme_textdomain'),
'prioriteetti' => 10
),
'kentät' => taulukko (
/ *
* Tekstikenttä
* /
// Kentän tunnus
'new_text_field' => taulukko (
'setting_args' => taulukko (
'oletus' => __ ('', 'oma_teema_tekstiverkkotunnus'),
'type' => 'option',
'ominaisuus' => $ thsp_cbp_capability,
'kuljetus' => 'päivitä',
),
'control_args' => taulukko (
'label' => __ ('Näyttää vain, jos', 'oma_teema_tekstiverkkotunnus'),
'type' => 'text', // Tekstikenttäohjaus
'prioriteetti' => 5
)
),
)
);

}

palauta $ vaihtoehdot;
}
add_filter ('thsp_cbp_options_array', 'my_plugin_dependency_options_array', 3);

Haluatko kehittää a ydintoimintojen laajennus käytetään teeman kanssa (kuten sinun pitäisi)? Voit kiinnittää ’Thsp_cbp_options_array’ myös yhdestä laajennuksesi tiedostosta, samoin kuin teet sen teeman function.php-tiedostosta.

Älä mene vaihtoehto hulluksi

Aina kun lisäät vaihtoehtoja kehitettyyn teemaan, sinun on pidettävä yksi WordPressin perusperiaatteista – Päätös ei vaihtoehdot – mielessä. On helppo päästä pois ja aloittaa käyttäjävaihtoehtojen lisääminen jokaisesta teemasi pienestä yksityiskohdasta, mutta se ei tee kenellekään palvelua. Toivon, että nämä muutamia temppuja, etenkin lisäosista riippuvien asetusten lisääminen, auttavat pitämään teeman vaihtoehtojen laskemisen mahdollisimman pieneksi.

Loppujen lopuksi, jos teemallasi on vaihtoehtoja esimerkiksi jokaisen elementin jokaisen reunan säteen suhteen, se ei ole teema, se on WYSIWYG-editori ja luultavasti ei loistava..

Et osta valkoista paitaa, koska jollain ylimääräisellä vaivalla voit muuntaa sen pöytäliinaksi, sinä ostat sen, koska pidät sen valkoisuudesta. Myös WordPress-teemojen tulisi olla sellaisia, niiden tulisi esittää sisältöä tietyllä tavalla, älä yritä tehdä kaikkea mahdollista. Jos olet teemakehittäjä, sinun tehtäväsi on varmistaa, että käyttäjän odotukset ovat niiden, minkä heidän pitäisi olla.

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