Oprema za prilagajanje tem kotlovske plošče – pogojne možnosti, otroške teme in vtičniki

  1. 1. Uvod v program za prilagajanje teme WordPress
  2. 2. Interakcija s programom za prilagajanje tem WordPress
  3. 3. WordPress tema za prilagajanje kotlovske plošče
  4. 4. Razširitev kotlovske plošče za prilagajanje teme WordPress
  5. 5. Trenutno bere: Oprema za prilagajanje tem kotlovske plošče – pogojne možnosti, otroške teme in vtičniki

Do zdaj smo videli, kako preprosto je ravnanje z možnostmi teme s tematsko prilagodilno ploščo kotla in njegovimi kavlji. Kot se verjetno spomnite, je bil najpomembnejši korak priklop ‘Thsp_cbp_options_array’ kavelj za filtriranje in podajanje niza možnosti, ki jih želite uporabiti v svoji temi.


Prepričan sem, da ste že seznanjeni z WordPressovo akcijo in kljukami za filtriranje – Plugin API – in kako delujejo, a za vsak primer je tu kratek povzetek (kot primer uporabite filtrirne kljuke). Svojo funkcijo po meri lahko določite in jo priključite v obstoječi filter s pomočjo funkcije add_filter:

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

Osredotočimo se na prednostni argument. Privzeta vrednost je 10, tako da če ne uporabljate druge številke, je to prednostna naloga izvajanja vaše funkcije. Znižajte številko, prej se funkcija izvaja. Če naredite kaj takega:

// Dodajanje prvega sporočila
funkcija my_theme_add_first_message ($ vsebina) {
$ content. = '

Prvo sporočilo

'; vrne $ vsebino; } add_filter ('the_content', 'my_theme_add_first_message', 1); // Dodajanje drugega sporočila funkcija my_theme_add_second_message ($ vsebina) { $ content. = '

Drugo sporočilo

'; vrne $ vsebino; } add_filter ('the_content', 'my_theme_add_second_message', 2);

Ko pokličete funkcijo_content v single.php ali kateri koli drugi vsebini objave predloge, sledi prvo sporočilo, nato drugo sporočilo. Ne zato, ker je to vrstni red v tem delčku kode, ampak zaradi parametra prioritete izvajanja. Pomislite na kljuke, kot da bi snežne kepe kotale po hribu, nabirale vse vrste stvari na svoji poti.

Kako to velja za tematsko prilagodilno ploščo kotla?

Lahko se priklopite ‘Thsp_cbp_options_array’ iz datoteke function.php vaše teme s pomočjo funkcije po meri (npr. my_theme_options_array) s prednostno vrednostjo, nastavljeno na 1. To pomeni katero koli drugo funkcijo, ki se priklopi na ‘Thsp_cbp_options_array’ kavelj filtra bo to storil PO funkciji my_theme_options_array, ki ste jo že definirali. Oglejte si ta primer:

funkcija my_theme_options_array () {
// Uporaba pomožne funkcije, da dobite privzeto zahtevane zmogljivosti
$ thsp_cbp_capability = thsp_cbp_capability ();

$ options = matrika (
// ID oddelka
'my_theme_new_section' => matrika (

'obstoječa_sekcija' => napačna,
'args' => matrika (
'title' => __ ('Nov odsek', 'my_theme_textdomain'),
'prioriteta' => 10
),
'polja' => matrika (
/ *
* Radijsko polje
* /
'my_radio_button' => matrika (
'setting_args' => matrika (
'privzeto' => 'možnost-2',
'tip' => 'možnost',
'zmogljivost' => $ thsp_cbp_capability,
'transport' => 'osveži',
),
'control_args' => matrika (
'label' => __ ('My Radio Button', 'my_theme_textdomain'),
'type' => 'radio', // Radio nadzor
'izbire' => matrika (
'možnost-1' => matrika (
'label' => __ ('Možnost 1', 'my_theme_textdomain')
),
'možnost-2' => matrika (
'label' => __ ('Možnost 2', 'my_theme_textdomain')
),
'možnost-3' => matrika (
'label' => __ ('Možnost 3', 'my_theme_textdomain')
)
),
'prioriteta' => 3
)
)
)
)
);

vrniti $ možnosti;
}
add_filter ('thsp_cbp_options_array', 'my_theme_options_array', 1);

To bo dodalo Nov razdelek orodju za prilagajanje teme z enim poljem v njem, imenovanim My Radio Button. Potem vi ali kdo drug razvije otroško temo za vašo temo in se odloči obdržati Nov odsek, toda namesto My Radio Button bi bilo morda bolje imeti My Checkbox. Enostavno:

funkcija my_child_theme_options_array ($ opcije) {
// Uporaba pomožne funkcije, da dobite privzeto zahtevane zmogljivosti
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Tokrat urejamo le polja v my_theme_new_section v nizu $ options
* /
$ options ['my_theme_new_section'] ['polja'] = matrika (
'my_checkbox_field' => matrika (
'setting_args' => matrika (
'privzeto' => res,
'tip' => 'možnost',
'zmogljivost' => $ thsp_cbp_capability,
'transport' => 'osveži',
),
'control_args' => matrika (
'label' => __ ('My Checkbox', 'my_theme_textdomain'),
'type' => 'checkbox', // kontrola polja
'prioriteta' => 2
)
)
);

vrniti $ možnosti;
}
add_filter ('thsp_cbp_options_array', 'my_child_theme_options_array', 2);

Ste opazili, da parametra $ options nisem prenesel na my_theme_options_array in sem to storil v funkciji my_child_theme_options_array? To je zato, ker sem se prvič vključil ‘Thsp_cbp_options_array’ kavelj sem želel preglasiti vzorčne možnosti za prilagajanje teme kotlovne plošče. Potem, ko sem se spet priklopil na otroško temo, nisem hotel v celoti izbrisati možnosti nadrejene teme, ampak jih le malo uredim. Zato se samo zapletem z $ options [‘my_theme_new_section’] [‘field’], ne pa s celotnim nizom $ options.

Seveda se lahko tudi priklopite ‘Thsp_cbp_options_array’ ključavnico s starševske teme večkrat. Recimo, da niste želeli svoji temi dodati funkcije ozemlja vtičnikov in vtičnike pustiti, da delajo, kar naj bi želeli. Zdaj želite prikazati nekatere možnosti orodja za prilagajanje tem, samo če je aktiven določen vtičnik. Spet enostavno:

funkcija my_plugin_dependency_options_array ($ opcije) {
// Uporaba pomožne funkcije, da dobite privzeto zahtevane zmogljivosti
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Dodajte my_plugin_dependency_section samo, če je aktivna 'test-plugin.php'
* /
if (is_plugin_active ('test-vtičnik / test-plugin.php')) {

$ options ['my_plugin_dependency_section'] = matrika (
'obstoječa_sekcija' => napačna,
'args' => matrika (
'title' => __ ('Odvisnost od vtičnikov', 'my_theme_textdomain'),
'prioriteta' => 10
),
'polja' => matrika (
/ *
* Besedilno polje
* /
// ID polja
'new_text_field' => matrika (
'setting_args' => matrika (
'privzeto' => __ ('', 'my_theme_textdomain'),
'tip' => 'možnost',
'zmogljivost' => $ thsp_cbp_capability,
'transport' => 'osveži',
),
'control_args' => matrika (
'label' => __ ('Prikaže samo, če', 'my_theme_textdomain'),
'type' => 'text', // Nadzor besedilnega polja
'prioriteta' => 5
)
),
)
);

}

vrniti $ možnosti;
}
add_filter ('thsp_cbp_options_array', 'my_plugin_dependency_options_array', 3);

Želite razviti jedro funkcionalnosti vtičnik uporabljati s svojo temo (kot bi moral)? Lahko se priklopite ‘Thsp_cbp_options_array’ tudi iz ene od datotek vtičnika, na enak način kot iz datoteke datoteke function.php..

Ne uporabljajte možnosti noro

Vsakič, ko dodate možnosti v temo, ki jo razvijate, morate upoštevati eno od glavnih načel WordPress-a – Odločitev ne Možnosti – v mislih. Preprosto se lahko zanesete in začnete dodajati uporabniške možnosti za vsako manjšo podrobnost, ki jo ima vaša tema, vendar to nikomur ne pomaga. Upam, da bo teh nekaj trikov, zlasti dodajanje dodatkov, ki so odvisni od vtičnika, pripomoglo k čim nižjemu številu možnosti teme.

Konec koncev, če ima vaša tema možnosti za stvari, kot je vsak polmer obroba vsakega posameznega elementa, to ni tema, je urejevalnik WYSIWYG in verjetno ni odličen.

Ne kupujete bele srajce, ker jo lahko z nekaj dodatnega truda spremenite v namizno krpo, ampak jo kupite, ker vam je všeč njena “belina”. Teme v WordPressu bi morale biti takšne, tudi na določen način bi morale predstaviti vsebino, ne pa poskušati narediti vse, kar je mogoče zamisliti. Če ste razvijalec tem, je vaša naloga poskrbeti, da bodo pričakovanja uporabnikov takšna, kot morajo 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