Teema kohandaja katlaplaat – tingimuslikud valikud, alamteemad ja pistikprogrammid

  1. 1. Sissejuhatus WordPressi teema kohandajasse
  2. 2. Suhtlemine WordPressi teema kohandajaga
  3. 3. WordPressi teema kohandaja katlaplaat
  4. 4. WordPressi teema kohandaja boileri laiendamine
  5. 5. Praegu loeb: Teema kohandaja katlaplaat – tingimuslikud valikud, alamteemad ja pistikprogrammid

Siiani oleme näinud, kui lihtne on teemavalikutega tegelemine, kasutades teema kohandaja boileriplaati ja selle konkse. Nagu te ilmselt mäletate, oli kõige olulisem samm haakuda ‘Thsp_cbp_options_array’ filtreerige konks ja andke talle valik erinevaid võimalusi, mida soovite oma teemas kasutada.


Olen kindel, et olete juba tuttav WordPressi toimingute ja filtrikonksudega – pistikprogrammi API-ga – ja kuidas need toimivad, kuid igaks juhuks on siin lühike kokkuvõte (kasutades näitena filtrikonksusid). Funktsiooni add_filter abil saate oma kohandatud funktsiooni määratleda ja olemasolevasse filtrisse siduda:

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

Keskendume prioriteetsetele argumentidele. Selle vaikeväärtus on 10, nii et kui te ei kasuta mõnda muud numbrit, siis on see teie funktsiooni täitmise prioriteet. Vähendage numbrit, seda varem teie funktsioon täidetakse. Nii et kui teete midagi sellist:

// Esimese sõnumi lisamine
funktsioon my_theme_add_first_message ($ sisu) {
$ sisu. = '

Esimene sõnum

'; tagastama $ sisu; } add_filter ('the_content', 'my_theme_add_first_message', 1); // Teise teate lisamine funktsioon my_theme_add_second_message ($ sisu) { $ sisu. = '

Teine sõnum

'; tagastama $ sisu; } add_filter ('the_content', 'my_theme_add_second_message', 2);

Kui helistate funktsiooni_sisaldus failis single.php või kuvatakse mis tahes muu malli postituse sisu, millele järgneb Esimene sõnum, millele järgneb Teine sõnum. Mitte sellepärast, et see on nende järjekord selles koodilõigus, vaid täitmise prioriteedi parameetri tõttu. Mõelge konksudele justkui mäest alla veerevad lumepallid, kes korjaksid oma teel igasugu asju.

Kuidas see rakenduse Theme Customizer Boilerplate kohta kehtib?

Võite haagida ‘Thsp_cbp_options_array’ teie teema funktsiooniph.php failist, kasutades kohandatud funktsiooni (nt my_theme_options_array), mille prioriteediväärtus on 1. See tähendab mis tahes muud funktsiooni, mis haakub ‘Thsp_cbp_options_array’ filterkonks teeb seda pärast teie juba määratletud funktsiooni my_theme_options_array. Vaadake seda näidet:

funktsioon my_theme_options_array () {
// Abistajafunktsiooni kasutamine vaikevõimaluse saamiseks
$ thsp_cbp_capability = thsp_cbp_capability ();

$ options = array (
// Jao ID
'my_theme_new_section' => massiiv (

'olemasolev_sektsioon' => vale,
'args' => massiiv (
'title' => __ ('Uus jaotis', 'my_theme_textdomain'),
'prioriteet' => 10
),
'väljad' => massiiv (
/ *
* Raadioväli
* /
'my_radio_button' => massiiv (
'setting_args' => massiiv (
'vaikimisi' => 'variant-2',
'type' => 'variant',
'võime' => $ thsp_cbp_capability,
'transport' => 'värskenda',
),
'control_args' => massiiv (
'label' => __ ('My Radio Button', 'my_theme_textdomain'),
'type' => 'radio', // raadiojuhtimine
'valikud' => massiiv (
'variant-1' => massiiv (
'label' => __ ('1. võimalus', 'my_theme_textdomain')
),
'variant-2' => massiiv (
'label' => __ ('2. võimalus', 'my_theme_textdomain')
),
'variant-3' => massiiv (
'label' => __ ('3. võimalus', 'my_theme_textdomain')
)
),
'prioriteet' => 3
)
)
)
)
);

tagasi $ optsioonid;
}
add_filter ('thsp_cbp_options_array', 'my_theme_options_array', 1);

See lisab teema kohandajasse uue jaotise, mille üks väli on Minu raadionupp. Siis arendab teie või keegi teine ​​teie teema jaoks lapseteema ja otsustab uue jaotise alles jätta, kuid My Radio Buttoni asemel võiks parem olla Minu ruut. Lihtne:

funktsioon my_child_theme_options_array ($ options) {
// Abistajafunktsiooni kasutamine vaikevõimaluse saamiseks
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Seekord redigeerime ainult väljade jaotises my_theme_new_section masendis $
* /
$ options ['my_theme_new_section'] ['fields'] = array (
'my_checkbox_field' => massiiv (
'setting_args' => massiiv (
'vaikimisi' => tõene,
'type' => 'variant',
'võime' => $ thsp_cbp_capability,
'transport' => 'värskenda',
),
'control_args' => massiiv (
'label' => __ ('Minu märkeruut', 'my_theme_textdomain'),
'type' => 'märkeruut', // Märkeruudu välja juhtelemendid
'prioriteet' => 2
)
)
);

tagasi $ optsioonid;
}
add_filter ('thsp_cbp_options_array', 'my_child_theme_options_array', 2);

Kas olete märganud, et ma ei andnud parameetrit $ options alla my_theme_options_array ja kas ma tegin seda funktsioonis my_child_theme_options_array? See on sellepärast, et kui ma esimest korda haakisin ‘Thsp_cbp_options_array’ konks Tahtsin tühistada teema kohandaja Boileri plaadi näidisvalikud. Siis, kui olin selle oma lapseteemast uuesti külge haaranud, ei tahtnud ma vanemateema valikuid täielikult kustutada, vaid lihtsalt neid veidi muuta. Sellepärast segan ma ainult $ võimalusi [‘my_theme_new_section’] [‘väljad], mitte kogu $ suvandite massiivi.

Muidugi saab ka konksu haarata ‘Thsp_cbp_options_array’ filtreerige konksu oma vanemateemast rohkem kui üks kord. Oletame, et te ei lisanud oma teemale pistikprogrammi territooriumi funktsioone ja lasite pistikprogrammidel teha seda, mida nad peaksid. Nüüd soovite kuvada mõned teemakohanduri valikud ainult siis, kui teatud pistikprogramm on aktiivne. Jällegi lihtne:

funktsioon my_plugin_dependency_options_array ($ suvandid) {
// Abistajafunktsiooni kasutamine vaikevõimaluse saamiseks
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* My_plugin_dependency_section lisamine ainult siis, kui 'test-plugin.php' on aktiivne
* /
if (is_plugin_active ('test-plugin / test-plugin.php'))) {

$ options ['my_plugin_dependency_section'] = array (
'olemasolev_sektsioon' => vale,
'args' => massiiv (
'title' => __ ('Plugini sõltuvus', 'my_theme_textdomain'),
'prioriteet' => 10
),
'väljad' => massiiv (
/ *
* Tekstiväli
* /
// Välja ID
'new_text_field' => massiiv (
'setting_args' => massiiv (
'vaikimisi' => __ ('', 'my_theme_textdomain'),
'type' => 'variant',
'võime' => $ thsp_cbp_capability,
'transport' => 'värskenda',
),
'control_args' => massiiv (
'label' => __ ('Näitab ainult siis, kui', 'my_theme_textdomain'),
'type' => 'text', // tekstivälja juhtimine
'prioriteet' => 5
)
),
)
);

}

tagasi $ optsioonid;
}
add_filter ('thsp_cbp_options_array', 'my_plugin_dependency_options_array', 3);

Kas soovite arendada a põhifunktsioonide pistikprogramm kasutada oma teemaga (nagu peaks)? Võite haagida ‘Thsp_cbp_options_array’ ka ühest teie pistikprogrammi failist, samamoodi, nagu teeksite seda teema function.php failist.

Don’t Go variant hull

Iga kord, kui lisate arendatavale teemale valikuid, peate säilitama ühe WordPressi peamistest põhimõtetest – Otsus, mitte Valikud – meeles. Lihtne on minema lasta ja hakata lisama kasutaja suvandeid iga väiksema detaili kohta, mis teie teemal on, kuid see ei tee kellelegi teene. Loodan, et need mõned nipid, eriti pistikprogrammist sõltuvate valikute lisamine, aitavad teie teemavalikute loendamisel olla võimalikult madalad.

Lõppude lõpuks, kui teie teemal on võimalusi näiteks sellisteks elementideks nagu iga elemendi iga ääreraadius, pole see teema, see on WYSIWYG-redaktor ja tõenäoliselt mitte suurepärane.

Te ei osta valget särki, kuna mõne täiendava pingutusega saate selle muuta laudlinaks, ostate selle, kuna teile meeldib selle valgeus. Ka WordPressi teemad peaksid olema sellised, nad peaksid esitama sisu teatud viisil, mitte püüdma teha kõike igal võimalikul viisil. Kui olete teema arendaja, on teie ülesanne veenduda, et kasutajate ootused oleksid sellised, nagu nad peaksid olema.

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