Tema Customizer Boilerplate – Mga Pagpipilian sa Kondisyon, Mga Tema ng Bata at Plugin

  1. 1. Panimula Sa Ang WordPress Tema Customizer
  2. 2. Pakikipag-ugnay Sa Customizer ng WordPress Tema
  3. 3. WordPress Tema Customizer Boilerplate
  4. 4. Pagpapalawak ng WordPress Theme Customizer Boilerplate
  5. 5. Kasalukuyang nagbabasa: Tema Customizer Boilerplate – Mga Pagpipilian sa Kondisyon, Mga Tema ng Bata at Plugin

Sa ngayon nakita na natin kung gaano kadali ang paghawak ng mga pagpipilian sa tema gamit ang Tema Customizer Boilerplate at ang mga kawit. Tulad ng maaaring maalala mo, ang pinakamahalagang hakbang ay ang pag-hook ‘Thsp_cbp_options_array’ filter hook at ipasa ito ng mga pagpipilian ng nais mong gamitin sa iyong tema.


Tiyak na pamilyar ka sa aksyon ng WordPress at mga kawit ng filter – Plugin API – at kung paano ito gumagana, ngunit kung sakali, narito ang isang mabilis na pagbabalik (gamit ang mga filter na pang-filter bilang isang halimbawa). Maaari mong tukuyin ang iyong pasadyang pag-andar at mai-hook ito sa isang umiiral na filter gamit ang add_filter function:

add_filter ($ tag, $ function_to_add, $ priority, $ tinatanggap_args);

Ituon ang pansin sa priority argument. Ang default na halaga nito ay 10, kaya kung hindi ka gumagamit ng isa pang numero, iyon ang magiging prioridad ng pagpapatupad ng iyong function. Ibaba ang numero, mas maaga ang iyong pag-andar ay naisakatuparan. Kaya kung gumawa ka ng ganito:

// Pagdaragdag ng unang mensahe
i-function ang my_theme_add_first_message ($ nilalaman) {
$ nilalaman. = '

Unang Mensahe

'; ibalik ang nilalaman ng $; } add_filter ('the_content', 'my_theme_add_first_message', 1); // Pagdaragdag ng pangalawang mensahe i-function ang my_theme_add_second_message ($ nilalaman) { $ nilalaman. = '

Pangalawang Mensahe

'; ibalik ang nilalaman ng $; } add_filter ('the_content', 'my_theme_add_second_message', 2);

Kapag tinawag mo ang_content function sa single.php o anumang iba pang nilalaman ng template post ay ipapakita, na sinusundan ng Unang Mensahe, na sinusundan ng Ikalawang Mensahe. Hindi dahil iyon ang kanilang order sa code snippet na ito, ngunit dahil sa priority priority ng execution. Mag-isip ng mga kawit na parang sila ay mga snowball na lumiligid sa burol ng pagpili ng lahat ng uri ng mga bagay-bagay sa kanilang paglalakad.

Paano ito nalalapat sa Tema Customizer Boilerplate?

Maaari kang mag-hook ‘Thsp_cbp_options_array’ mula sa file ng function.php ng ​​iyong tema, gamit ang isang pasadyang pag-andar (hal. my_theme_options_array) na may pinakahalagang halaga na itinakda sa 1. Nangangahulugan ito ng anumang iba pang pag-andar na nakakabit sa ‘Thsp_cbp_options_array’ Gagamitin ito ng filter hook pagkatapos MATAPOS my_theme_options_array function na natukoy mo. Tingnan ang halimbawang ito:

gumana ang aking_theme_opsyon_array () {
// Paggamit ng katulong ng katulong upang makakuha ng kinakailangang default na kakayahan
$ thsp_cbp_capability = thsp_cbp_capability ();

$ pagpipilian = array
// Seksyon ID
'my_theme_new_section' => array

'mayroon_section' => maling,
'args' => array (
'title' => __ ('Bagong Seksyon', 'my_theme_textdomain'),
'priority' => 10
),
'mga patlang' => array (
/ *
* Patlang ng radyo
* /
'my_radio_button' => array (
'setting_args' => array (
'default' => 'pagpipilian-2',
'type' => 'pagpipilian',
'kakayahan' => $ thsp_cbp_capability,
'transport' => 'i-refresh',
),
'control_args' => array (
'label' => __ ('My Radio Button', 'my_theme_textdomain'),
'type' => 'radio', // Kontrol sa radyo
'options' => array (
'option-1' => array (
'label' => __ ('Pagpipilian 1', 'my_theme_textdomain')
),
'option-2' => array (
'label' => __ ('Pagpipilian 2', 'my_theme_textdomain')
),
'option-3' => array (
'label' => __ ('Pagpipilian 3', 'my_theme_textdomain')
)
),
'priority' => 3
)
)
)
)
);

ibalik ang mga pagpipilian sa $;
}
add_filter ('thsp_cbp_options_array', 'my_theme_options_array', 1);

Ito ay magdaragdag ng Bagong Seksyon sa Tema Customizer na may isang patlang dito, na tinatawag na My Radio Button. Pagkatapos ikaw, o ibang tao ay bubuo ng isang tema ng bata para sa iyong tema at nagpasya na panatilihin ang Bagong Seksyon, ngunit sa halip ng Aking Radio Button ay mas mahusay na magkaroon ng Aking Checkbox. Madali:

gumana ang aking_child_theme_options_array ($ pagpipilian) {
// Paggamit ng katulong ng katulong upang makakuha ng kinakailangang default na kakayahan
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Sa oras na ito, nag-edit lamang kami ng mga patlang sa my_theme_new_section sa hanay ng $ pagpipilian
* /
$ pagpipilian ['my_theme_new_section'] ['mga patlang'] = array
'my_checkbox_field' => array (
'setting_args' => array (
'default' => totoo,
'type' => 'pagpipilian',
'kakayahan' => $ thsp_cbp_capability,
'transport' => 'i-refresh',
),
'control_args' => array (
'label' => __ ('Aking Checkbox', 'my_theme_textdomain'),
'type' => 'checkbox', // Kontrol ng patlang ng Checkbox
'priority' => 2
)
)
);

ibalik ang mga pagpipilian sa $;
}
add_filter ('thsp_cbp_options_array', 'my_child_theme_options_array', 2);

Napansin na hindi ako pumasa ng mga pagpipilian sa $ pagpipilian sa my_theme_options_array at ginawa ko ito sa my_child_theme_options_array function? Iyon ay dahil noong una akong nakakabit ‘Thsp_cbp_options_array’ Nais kong ma-override ang mga pagpipilian sa sample ng Customizer Boilerplate. Pagkatapos, kapag ako ay nai-hook muli mula sa tema ng aking anak, hindi ko nais na ganap na tanggalin ang mga pagpipilian ng tema ng magulang, bahagyang i-edit ito. Iyon ang dahilan kung bakit gumugulo lamang ako sa $ mga pagpipilian [‘my_theme_new_section’] [‘mga patlang’], hindi ang buong $ pagpipilian na hanay.

Siyempre, maaari ka ring kumabit ‘Thsp_cbp_options_array’ filter hook mula sa iyong magulang na tema nang higit sa isang beses .. Sabihin nating pinili mong huwag magdagdag ng mga tampok na plugin-teritoryo sa iyong tema at hayaan ang mga plugin na gawin ang nararapat. Ngayon nais mong ipakita ang ilang mga pagpipilian sa Tema Customizer lamang kung ang isang tiyak na plugin ay aktibo. Muli, madali:

gumana ang my_plugin_d dependency_options_array ($ pagpipilian) {
// Paggamit ng katulong ng katulong upang makakuha ng kinakailangang default na kakayahan
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Pagdaragdag lamang ng my_plugin_d dependency_section kung ang 'test-plugin.php' ay aktibo
* /
kung (is_plugin_active ('test-plugin / test-plugin.php')) {

$ pagpipilian ['my_plugin_d dependency_section'] = array (
'mayroon_section' => maling,
'args' => array (
'title' => __ ('Plugin Dependency', 'my_theme_textdomain'),
'priority' => 10
),
'mga patlang' => array (
/ *
* Patlang ng teksto
* /
// Field ID
'new_text_field' => array (
'setting_args' => array (
'default' => __ ('', 'my_theme_textdomain'),
'type' => 'pagpipilian',
'kakayahan' => $ thsp_cbp_capability,
'transport' => 'i-refresh',
),
'control_args' => array (
'label' => __ ('Ipinapakita lamang kung', 'my_theme_textdomain'),
'type' => 'text', // Kontrol ng patlang ng teksto
'priority' => 5
)
),
)
);

}

ibalik ang mga pagpipilian sa $;
}
add_filter ('thsp_cbp_options_array', 'my_plugin_d dependency_options_array', 3);

Nais na bumuo ng isang plugin ng pangunahing pag-andar upang magamit sa iyong tema (tulad ng dapat mo)? Maaari kang mag-hook ‘Thsp_cbp_options_array’ mula sa isa sa mga file ng iyong plugin, sa parehong paraan na iyong gawin mula sa file ng function.php ng ​​isang tema.

Huwag Pumunta sa Opsyon Crazy

Sa tuwing nagdaragdag ka ng mga pagpipilian sa isang tema na binuo mo kailangan mong mapanatili ang isa sa mga pangunahing prinsipyo ng WordPress – Hindi Pagpipilian – sa isip. Madali itong madala at simulan ang pagdaragdag ng mga pagpipilian sa gumagamit para sa bawat menor de edad na detalye na mayroon ang iyong tema, ngunit hindi ito pabor sa sinuman. Inaasahan ko na ang ilang mga trick na ito, lalo na ang pagdaragdag ng mga pagpipilian na nakasalalay sa plugin, ay makakatulong na mapanatili ang bilang ng mga pagpipilian ng iyong tema na mas mababa hangga’t maaari.

Pagkatapos ng lahat, kung ang iyong tema ay may mga pagpipilian para sa mga bagay tulad ng bawat hangganan ng radius ng bawat solong elemento, hindi ito tema na ito ay isang editor ng WYSIWYG at marahil hindi isang mahusay.

Hindi ka bumili ng isang puting kamiseta dahil sa ilang karagdagang pagsisikap na maibago mo ito sa isang tela ng mesa, binibili mo ito dahil gusto mo ang “whiteshirtness” nito. Ang mga tema ng WordPress ay dapat na katulad nito, dapat ding ipakita ang nilalaman sa isang tiyak na paraan, hindi subukang gawin ang lahat sa bawat paraan na maisip. Kung ikaw ay isang developer ng tema ito ay iyong trabaho upang matiyak na ang mga inaasahan ng gumagamit ang dapat nilang gawin.

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