Téma testreszabási kazánlap – Feltételes beállítások, Gyerek témák és plug-inek

  1. 1. Bevezetés a WordPress Theme Customizer-be
  2. 2. Kölcsönhatás a WordPress Theme Customizer segítségével
  3. 3. WordPress Theme Customizer kazánlap
  4. 4. A WordPress Theme Customizer kazánlap kiterjesztése
  5. 5. Jelenleg olvas: Téma testreszabási kazánlap – Feltételes beállítások, Gyerek témák és plug-inek

Eddig láttuk, hogy mennyire egyszerű a témabeállítások kezelése a Téma testreszabási kazánlap és a horgai segítségével. Mint valószínűleg emlékszel, a legfontosabb lépés a bekötés volt „Thsp_cbp_options_array” szűrje be a kampót, és adja át a témában használni kívánt lehetőségek tömbjét.


Biztos vagyok benne, hogy már ismeri a WordPress műveletet és a szűrőhorgokat – a Plugin API-t – és azok működését, de mindenesetre itt egy gyors áttekintés (példaként a szűrőhorgok használata). Meghatározhatja az egyéni funkciót, és bekapcsolhatja azt egy meglévő szűrőbe az add_filter függvény használatával:

add_filter ($ tag, $ function_to_add, $ prioritás, $ elfogadott_args);

Koncentráljunk a prioritási érvekre. Alapértelmezett értéke 10, tehát ha nem használ másik számot, akkor ez lesz a funkció végrehajtási prioritása. Engedje le a számot, ha korábban végrehajtja a funkciót. Tehát, ha valami ilyesmit tesz:

// Első üzenet hozzáadása
funkció my_theme_add_first_message ($ content) {
$ content. = '

Első üzenet

„ visszatér $ tartalom; } add_filter ('the_content', 'my_theme_add_first_message', 1); // Második üzenet hozzáadása funkció my_theme_add_second_message ($ content) { $ content. = '

Második üzenet

„ visszatér $ tartalom; } add_filter ('the_content', 'my_theme_add_second_message', 2);

Amikor felhívja a_tartalom funkciót az single.php fájlban, vagy bármilyen más sablon megjelenik, akkor megjelenik az első üzenet, majd a második üzenet. Nem azért, mert ez a sorrend ebben a kódrészletben, hanem azért, mert a végrehajtás prioritási paramétere van. Gondolj olyan horgokra, mintha hógolyók lennének, amelyek gördülnek le a dombról, és mindenféle cuccokat választanak úton.

Hogyan vonatkozik ez a téma testreszabási kazánlapjára?

Bekapaszkodhat „Thsp_cbp_options_array” a téma function.php fájljából, egy egyedi funkcióval (például my_theme_options_array), amelynek prioritási értéke 1-re van állítva. Ez azt jelenti, hogy bármilyen más funkció bekapcsol „Thsp_cbp_options_array” A szűrőhorog ezt megteszi a már definiált my_theme_options_array függvény után. Vessen egy pillantást erre a példára:

funkció my_theme_options_array () {
// Segéd funkció használata az alapértelmezett szükséges képesség eléréséhez
$ thsp_cbp_capability = thsp_cbp_capability ();

$ options = tömb (
// Szekció azonosítója
'my_theme_new_section' => tömb (

'olemasoleva_szekció' => hamis,
'args' => tömb (
'title' => __ ('Új szakasz', 'my_theme_textdomain'),
„prioritás” => 10
),
'mezők' => tömb (
/ *
* Rádiómező
* /
'my_radio_button' => tömb (
'set_args' => tömb (
'alapértelmezett' => 'opció-2',
'type' => 'option',
'képesség' => $ thsp_cbp_capability,
'szállítás' => 'frissítés',
),
'control_args' => tömb (
'label' => __ ('My Radio Button', 'my_theme_textdomain'),
'type' => 'radio', // Rádióvezérlés
'választások' => tömb (
'opció-1' => tömb (
'label' => __ ('1. lehetőség', 'my_theme_textdomain')
),
'opció-2' => tömb (
'label' => __ ('2. lehetőség', 'my_theme_textdomain')
),
'opció-3' => tömb (
'label' => __ ('3. lehetőség', 'my_theme_textdomain')
)
),
„prioritás” => 3
)
)
)
)
);

visszaküldési opciók;
}
add_filter ('thsp_cbp_options_array', 'my_theme_options_array', 1);

Ezzel az Új szakasz hozzáadódik a Téma-testreszabáshoz, egy mezővel, a My Radio Button-tal. Ezután Ön vagy valaki más kidolgoz egy gyermek témát a témájához, és úgy dönt, hogy új szekciót tart fenn, de a Saját rádió gomb helyett jobb lehet, ha a Saját jelölőnégyzetet tartalmazza. Könnyen:

funkció my_child_theme_options_array ($ options) {
// Segéd funkció használata az alapértelmezett szükséges képesség eléréséhez
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Ezúttal csak a my_theme_new_section mezőket szerkesztjük a $ options tömbben
* /
$ options ['my_theme_new_section'] ['fields'] = tömb (
'my_checkbox_field' => tömb (
'set_args' => tömb (
'alapértelmezett' => igaz,
'type' => 'option',
'képesség' => $ thsp_cbp_capability,
'szállítás' => 'frissítés',
),
'control_args' => tömb (
'label' => __ ('Saját jelölőnégyzet', 'my_theme_textdomain'),
'type' => 'jelölőnégyzet', // Jelölőnégyzet mező vezérlése
'prioritás' => 2
)
)
);

visszaküldési opciók;
}
add_filter ('thsp_cbp_options_array', 'my_child_theme_options_array', 2);

Észrevettem, hogy nem adtam át a $ options paramétert a my_theme_options_array-nek, és a my_child_theme_options_array függvényben végeztem el? Azért van, mert amikor először bekapcsoltam „Thsp_cbp_options_array” Hook A téma testreszabási kazánlap lemezminta lehetőségeit felül kellett volna utasítani. Aztán, amikor ismét belekapaszkodtam a gyermekem témájába, nem akartam teljesen törölni a szülői téma lehetőségeit, csak kissé szerkesztettem őket. Ezért csak a $ options [‘my_theme_new_section’] [‘fields’] -vel zavarom, nem a teljes $ options tömböt.

Természetesen be is horoghat „Thsp_cbp_options_array” szűrje meg a szülői téma kampóját többször. Tegyük fel, hogy úgy döntött, hogy nem ad hozzá plug-in-területi funkciókat a témához, és hagyja, hogy a pluginek elvégezzék azt, amit elvárnak. Most csak akkor szeretne megjeleníteni a téma testreszabási lehetőségeit, ha egy adott plugin aktív. Ismét könnyű:

funkció my_plugin_dependency_options_array ($ options) {
// Segéd funkció használata az alapértelmezett szükséges képesség eléréséhez
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Csak a my_plugin_dependency_section hozzáadása, ha a 'test-plugin.php' aktív
* /
if (is_plugin_active ('teszt-plugin / teszt-plugin.php'))) {

$ options ['my_plugin_dependency_section'] = tömb (
'olemasoleva_szekció' => hamis,
'args' => tömb (
'title' => __ ('Plugin Dependency', 'my_theme_textdomain'),
„prioritás” => 10
),
'mezők' => tömb (
/ *
* Szöveg mező
* /
// A mező azonosítója
'new_text_field' => tömb (
'set_args' => tömb (
'alapértelmezett' => __ ('', 'my_theme_textdomain'),
'type' => 'option',
'képesség' => $ thsp_cbp_capability,
'szállítás' => 'frissítés',
),
'control_args' => tömb (
'label' => __ ('Csak akkor jelenik meg, ha', 'my_theme_textdomain'),
'type' => 'text', // A szövegmező vezérlése
„prioritás” => 5
)
),
)
);

}

visszaküldési opciók;
}
add_filter ('thsp_cbp_options_array', 'my_plugin_dependency_options_array', 3);

Szeretne fejleszteni a alapfunkciós plugin használni a témájához (ahogy kellene)? Bekapaszkodhat „Thsp_cbp_options_array” az egyik beépülő modul fájljából, ugyanúgy, mint a téma function.php fájljából..

Do not go variant őrült

Minden alkalommal, amikor lehetőségeket ad hozzá egy kifejlesztett témához, meg kell őriznie a WordPress egyik alapelvet – Nem döntés, hanem döntés – gondolatban. Könnyű elviselni, és felhasználói lehetőségeket adhat hozzá minden apró részlethez, amely témája van, de ez nem tesz senkinek szívességet. Remélem, hogy ez a néhány trükk, különösen a pluginfüggő lehetőségek hozzáadása segít megőrizni a téma lehetőségeit a lehető legkevesebbben.

Végül is, ha a témának lehetősége van olyan dolgokra, mint például minden elem minden szélső sugara, akkor nem ez a téma, hanem egy WYSIWYG szerkesztő, és valószínűleg nem is nagyszerű..

Nem vesz fehér inget, mert némi extra erőfeszítéssel átalakíthatja asztalterítővé, és akkor veszi, mert szereti a „fehérségét”. A WordPress témáknak is ilyeneknek kell lenniük, és a tartalmat bizonyos módon kell bemutatniuk, nem pedig mindent megpróbálni tenni minden elképzelhető módon. Ha Ön témafejlesztő, akkor a te feladata, hogy megbizonyosodjon arról, hogy a felhasználói elvárások megfeleljenek nekik.

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