Addasydd Thema: Amodau, Themâu Plant ac Ategion

Addasydd Thema: Amodau, Themâu Plant ac Ategion 1

Hyd yn hyn rydym wedi gweld pa mor syml yw hi i reoli opsiynau thema gan ddefnyddio’r Thema Customizer Boilerplate a’i bachau. Fel y cofiwch mae’n debyg, y cam pwysicaf oedd cysylltu ‘thsp_cbp_options_array’ bachyn hidlo a’i basio yr amrywiaeth o opsiynau rydych chi am eu defnyddio yn eich thema.

Rwy’n siŵr eich bod chi eisoes yn gyfarwydd â bachau gweithredu a hidlo WordPress (API Plugin) a sut maen nhw’n gweithio, ond rhag ofn, dyma ddadansoddiad cyflym (gan ddefnyddio bachau hidlo fel enghraifft). Gallwch chi ddiffinio’ch swyddogaeth arferol a’i gysylltu â hidlydd sy’n bodoli eisoes gan ddefnyddio’r swyddogaeth add_filter:

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

Gadewch i ni ganolbwyntio ar y ddadl flaenoriaeth. Mae’n rhagosodedig i 10, felly os na ddefnyddiwch rif arall, dyna fydd blaenoriaeth gweithredu eich swyddogaeth. Gostyngwch y rhif, cyn i’ch swyddogaeth gael ei chyflawni. Felly os gwnewch rywbeth fel hyn:

// Ychwanegu swyddogaeth neges gyntaf my_theme_add_first_message ( $content ) { $content .= ‘

neges gyntaf

‘; dychwelyd $content; } add_filter( ‘the_content’, ‘my_theme_add_first_message’, 1 ); // Ychwanegu swyddogaeth ail neges my_theme_add_second_message ( $content ) { $content .= ‘

Ail Neges

‘; dychwelyd $content; } add_filter( ‘the_content’, ‘my_theme_add_second_message’, 2 );

Pan fyddwch chi’n galw’r swyddogaeth_content yn single.php neu unrhyw dempled arall, bydd yn dangos cynnwys y post, ac yna’r Post Cyntaf, ac yna’r Ail Post. Nid oherwydd dyna ei drefn yn y pyt cod hwn, ond oherwydd y paramedr blaenoriaeth gweithredu. Meddyliwch am fachau fel peli eira yn rholio i lawr allt yn codi pob math o bethau ar eu ffordd.

Sut mae hyn yn berthnasol i Thema Customizer Boilerplate?

gallwch chi bachu i fyny ‘thsp_cbp_options_array’ o ffeil function.php eich thema, gan ddefnyddio ffwythiant addasedig (er enghraifft, my_theme_options_array) gyda’r gwerth blaenoriaeth wedi’i osod i 1. Mae hynny’n golygu unrhyw swyddogaeth arall sy’n bachu i mewn ‘thsp_cbp_options_array’ Bydd y bachyn hidlo yn gwneud hyn AR ÔL y swyddogaeth my_theme_options_array a ddiffiniwyd gennych eisoes. Cymerwch olwg ar yr enghraifft hon:

swyddogaeth my_theme_options_array() {// Defnyddio swyddogaeth helpwr i gael y gallu gofynnol rhagosodedig $thsp_cbp_capability = thsp_cbp_capability(); $options = array( // ID adran ‘my_theme_new_section’ => arae( ‘existing_section’ => ffug, ‘args’ => arae( ‘title’ => __( ‘Adran Newydd’, ‘my_theme_textdomain’ ), ‘blaenoriaeth’ => 10 ), ‘fields’ => arae( /* * Maes radio */ ‘my_radio_button’ => arae( ‘setting_args’ => arae( ‘default’ => ‘opsiwn-2’ , ‘ type ‘ => ‘ opsiwn ‘ , ‘ gallu ‘ => $thsp_cbp_capability, ‘ transport ‘ => ‘ adnewyddu ‘ , ), ‘ control_args ‘ => arae( ‘label’ => __( ‘Fy Botwm Radio’, ‘ my_theme_textdomain ‘ ), ‘type’ => ‘radio’ , // Rheolaeth radio ‘dewisiadau’ => arae( ‘opsiwn-1’ => arae( ‘label’ => __( ‘ Opsiwn 1’, ‘my_theme_textdomain’ ) ), ‘opsiwn-2’ => arae( ‘label’ => __( ‘ Opsiwn 2’, ‘my_theme_textdomain’ ) ), ‘opsiwn-3’ => arae( ‘label’ => __( ‘ Opsiwn 3’ , ‘ my_theme_textdomain ‘ ) ) ), ‘blaenoriaeth’ => 3
) ) ) ); dychwelyd $opsiynau; } add_filter( ‘thsp_cbp_options_array’, ‘my_theme_options_array’, 1 );

Bydd hyn yn ychwanegu Adran Newydd at y Cymhwysydd Thema gyda maes ynddo, o’r enw My Radio Button. Yna byddwch chi, neu rywun arall, yn datblygu thema plentyn ar gyfer eich thema ac yn penderfynu cadw’r Adran Newydd, ond yn lle botwm Fy radio, byddai’n well cael My checkbox. Hawdd:

swyddogaeth my_child_theme_options_array( $options ) {// Defnyddio swyddogaeth helpwr i gael y gallu gofynnol diofyn $thsp_cbp_capability = thsp_cbp_capability(); /* * Y tro hwn, dim ond meysydd yn my_theme_new_section yr ydym yn eu golygu yn yr arae $options */ $options[‘my_theme_new_section’][‘fields’] = array( ‘ my_checkbox_field ‘ => arae( ‘setting_args’ => arae( ‘default’ => yn wir, ‘type’ => ‘opsiwn’, ‘gallu’ => $thsp_cbp_capability, ‘transport’ => ‘adnewyddu’, ), ‘control_args’ => arae( ‘label’ => __( ‘Fy Blwch Ticio’ , ‘my_theme_textdomain’ ), ‘type’ => ‘Blwch ticio’, // Rheolaeth maes checkbox ‘blaenoriaeth’ => 2
) ) ); dychwelyd $opsiynau; } add_filter( ‘thsp_cbp_options_array’, ‘my_child_theme_options_array’, 2 );

Wedi sylwi na wnes i basio’r paramedr $options i my_theme_options_array a’i wneud yn swyddogaeth my_child_theme_options_array? Mae hynny oherwydd pan ges i wirioni am y tro cyntaf ‘thsp_cbp_options_array’ bachyn Roeddwn i eisiau diystyru’r opsiynau sampl Thema Customizer Boilerplate. Yna pan wnes i ei ailgysylltu o thema fy mhlentyn, doeddwn i ddim eisiau tynnu’r opsiynau o’r thema rhiant yn llwyr, dim ond eu golygu ychydig. Dyna pam rwy’n chwarae o gwmpas gyda $options[‘my_theme_new_section’][‘fields’]nid yr arae $options gyfan.

Wrth gwrs gallwch chi hefyd gysylltu ‘thsp_cbp_options_array’ hidlydd bachu o’ch pwnc rhiant fwy nag unwaith. Gadewch i ni ddweud eich bod wedi dewis peidio ag ychwanegu nodweddion tiriogaeth ategyn i’ch thema a gadael i ategion wneud yr hyn y dylent ei wneud. Nawr rydych chi am ddangos rhai opsiynau Customizer Thema dim ond os yw ategyn penodol yn weithredol. Unwaith eto, hawdd:

swyddogaeth my_plugin_dependency_options_array( $options ) {// Defnyddio swyddogaeth helpwr i gael y gallu gofynnol diofyn $thsp_cbp_capability = thsp_cbp_capability(); /* * Ychwanegu my_plugin_dependency_section dim ond os yw ‘test-plugin.php’ yn weithredol */ os ( is_plugin_active ( ‘ test-plugin/test-plugin.php ‘ ) ) { $options[‘my_plugin_dependency_section’] = arae( ‘existing_section’ => ffug, ‘args’ => arae( ‘title’ => __( ‘Dibyniaeth Ategyn’, ‘my_theme_textdomain’ ), ‘blaenoriaeth’ => 10 ), ‘meysydd’ => arae( / * * Maes testun */ // ID maes ‘new_text_field’ => arae( ‘setting_args’ => arae( ‘default’ => __( ”, ‘my_theme_textdomain’ ), ‘type’ => ‘opsiwn’, ‘gallu ‘ ; , // Rheoli maes testun ‘blaenoriaeth’ => 5
) ), ) ); } dychwelyd $opsiynau; } add_filter( ‘thsp_cbp_options_array’, ‘my_plugin_dependency_options_array’, 3 );

Ydych chi eisiau datblygu ategyn ymarferoldeb craidd i’w ddefnyddio gyda’ch thema (fel y dylech)? gallwch chi bachu i fyny ‘thsp_cbp_options_array’ hefyd o un o’ch ffeiliau ategyn, yr un ffordd ag y byddech chi o ffeil function.php thema.

Peidiwch â mynd yn wallgof gyda’r opsiynau

Pryd bynnag y byddwch chi’n ychwanegu opsiynau at thema rydych chi’n ei datblygu, dylech gadw at un o egwyddorion craidd WordPress: Penderfyniad, nid opsiynau – mewn cof. Mae’n hawdd dod dros ben llestri a dechrau ychwanegu opsiynau defnyddwyr ar gyfer pob manylyn bach sydd gan eich thema, ond nid yw hynny’n gwneud ffafr i unrhyw un. Rwy’n gobeithio y bydd yr ychydig driciau hyn, yn enwedig ychwanegu opsiynau sy’n dibynnu ar ategyn, yn helpu i gadw’ch opsiynau thema mor isel â phosib.

Wedi’r cyfan, os oes gan eich thema opsiynau ar gyfer pethau fel radiws ffin pob elfen, nid yw’n thema, mae’n olygydd WYSIWYG, ac mae’n debyg nad yw’n un wych.

Nid ydych chi’n prynu crys gwyn oherwydd gydag ymdrech ychwanegol gallwch chi ei drawsnewid yn lliain bwrdd, rydych chi’n ei brynu oherwydd eich bod chi’n hoffi ei “grys gwyn”. Dylai themâu WordPress fod felly hefyd, dylent gyflwyno cynnwys mewn ffordd benodol, nid ceisio gwneud popeth ym mhob ffordd bosibl. Os ydych chi’n ddatblygwr thema, eich swydd chi yw sicrhau bod disgwyliadau defnyddwyr yr hyn y dylent fod.