Boilerplate prispôsobovača tém – podmienečné možnosti, podradené motívy a doplnky

  1. 1. Úvod do Prispôsobovača tém WordPress
  2. 2. Interakcia s WordPress Theme Customizer
  3. 3. Varná doska WordPress Theme Customizer
  4. 4. Rozšírenie kotla WordPress Theme Customizer
  5. 5. Aktuálne čítanie: Boilerplate prispôsobovača tém – podmienečné možnosti, podradené motívy a doplnky

Doteraz sme videli, aké jednoduché je zvládnuť možnosti témy pomocou kotla na prispôsobenie témy a jeho háčikov. Ako si pravdepodobne spomínate, najdôležitejším krokom bolo zapojenie sa , Thsp_cbp_options_array ‘ filtrujte háčik a odovzdajte mu množstvo možností, ktoré chcete použiť vo svojom motíve.


Určite ste už oboznámení s akciou WordPress a háčikmi na filtrovanie – Plugin API – a ako fungujú, ale len v prípade, tu je rýchla rekapitulácia (ako príklad použijeme háčiky na filtre). Svoju vlastnú funkciu môžete definovať a pripojiť ju k existujúcemu filtru pomocou funkcie add_filter:

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

Zamerajme sa na argument priority. Predvolená hodnota je 10, takže ak nepoužijete iné číslo, bude to priorita vykonávania vašej funkcie. Znížte číslo, skôr ako bude vaša funkcia vykonaná. Ak teda niečo také urobíte:

// Pridanie prvej správy
function my_theme_add_first_message ($ content) {
$ content. = '

Prvá správa

,; návrat $ content; } add_filter ('the_content', 'my_theme_add_first_message', 1); // Pridanie druhej správy function my_theme_add_second_message ($ content) { $ content. = '

Druhá správa

,; návrat $ content; } add_filter ('the_content', 'my_theme_add_second_message', 2);

Keď zavoláte funkciu the_content v single.php alebo v akomkoľvek inom šablóne, zobrazí sa obsah príspevku, nasledovaný prvou správou a druhou správou. Nie preto, že je to ich poradie v tomto útržku kódu, ale kvôli parametru priority vykonávania. Pomysli na háčiky, akoby to boli snehové gule valiace sa z kopca a vyberali si na ceste všetky druhy vecí.

Ako to platí pre šablónu prispôsobenia témy?

Môžete sa pripojiť , Thsp_cbp_options_array ‘ zo súboru function.php témy pomocou vlastnej funkcie (napr. my_theme_options_array) s hodnotou priority nastavenou na 1. To znamená, že akákoľvek iná funkcia, ktorá sa pripojí k , Thsp_cbp_options_array ‘ filter hook to urobí po funkcii my_theme_options_array, ktorú ste už definovali. Pozrite sa na tento príklad:

function my_theme_options_array () {
// Použitie pomocnej funkcie na získanie predvolenej požadovanej schopnosti
$ thsp_cbp_capability = thsp_cbp_capability ();

$ options = array (
// ID oddielu
'my_theme_new_section' => array (

'exist_section' => false,
'args' => array (
'title' => __ ('New Section', 'my_theme_textdomain'),
'priority' => 10
),
'fields' => array (
/ *
* Rádiové pole
* /
'my_radio_button' => pole (
'setting_args' => array (
'default' => 'option-2',
'type' => 'option',
'schopnosť' => $ thsp_cbp_capability,
'transport' => 'obnoviť',
),
'control_args' => array (
'label' => __ ('My Radio Button', 'my_theme_textdomain'),
'type' => 'radio', // Ovládanie rádia
'choices' => array (
'option-1' => array (
'label' => __ ('Option 1', 'my_theme_textdomain')
),
'option-2' => array (
'label' => __ ('Option 2', 'my_theme_textdomain')
),
'option-3' => array (
'label' => __ ('Option 3', 'my_theme_textdomain')
)
),
'priority' => 3
)
)
)
)
);

možnosti vrátenia $;
}
add_filter ('thsp_cbp_options_array', 'my_theme_options_array', 1);

Týmto pridáte do sekcie Prispôsobovač tém novú sekciu s jedným poľom nazvaným Moje prepínač. Potom vy alebo niekto iný vyvinie pre svoju tému podradenú tému a rozhodne sa ponechať novú sekciu, ale namiesto môjho prepínača môže byť lepšie mať moje zaškrtávacie políčko. easy:

function my_child_theme_options_array ($ options) {
// Použitie pomocnej funkcie na získanie predvolenej požadovanej schopnosti
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Tentoraz upravujeme iba polia v sekcii my_theme_new_section v poli $ options
* /
$ options ['my_theme_new_section'] ['fields'] = array (
'my_checkbox_field' => array (
'setting_args' => array (
'default' => true,
'type' => 'option',
'schopnosť' => $ thsp_cbp_capability,
'transport' => 'obnoviť',
),
'control_args' => array (
'label' => __ ('Moje začiarkavacie políčko', 'my_theme_textdomain'),
'type' => 'checkbox', // Ovládanie poľa Checkbox
'priority' => 2
)
)
);

možnosti vrátenia $;
}
add_filter ('thsp_cbp_options_array', 'my_child_theme_options_array', 2);

Všimli ste si, že som nepostúpil parameter $ options do funkcie my_theme_options_array a urobil to vo funkcii my_child_theme_options_array? Je to preto, že keď som sa prvýkrát pripojil , Thsp_cbp_options_array ‘ háčik, ktorý som chcel prepísať ukážkové možnosti šablón prispôsobovača tém. Potom, keď som sa do toho znova zapojil zo svojej detskej témy, nechcel som úplne odstrániť možnosti rodičovskej témy, len ich mierne upravte. Preto si len rozprávam s $ options [‘my_theme_new_section ’] [‘ fields ”], nie s celým poľom $ options.

Samozrejme, môžete sa tiež pripojiť , Thsp_cbp_options_array ‘ filtrujte háčik od svojej nadradenej témy viackrát. Povedzme, že ste sa k téme rozhodli nepridávať funkcie územia doplnkov a nechali doplnky robiť to, čo majú. Teraz chcete zobraziť niektoré možnosti nástroja Prispôsobenie témy iba v prípade, že je aktívny určitý doplnok. Opäť ľahké:

function my_plugin_dependency_options_array ($ options) {
// Použitie pomocnej funkcie na získanie predvolenej požadovanej schopnosti
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Pridanie my_plugin_dependency_section pridajte, iba ak je aktívny 'test-plugin.php'
* /
if (is_plugin_active ('test-plugin / test-plugin.php')) {

$ options ['my_plugin_dependency_section'] = array (
'exist_section' => false,
'args' => array (
'title' => __ ('Plugin Dependency', 'my_theme_textdomain'),
'priority' => 10
),
'fields' => array (
/ *
* Textové pole
* /
// ID poľa
'new_text_field' => array (
'setting_args' => array (
'default' => __ ('', 'my_theme_textdomain'),
'type' => 'option',
'schopnosť' => $ thsp_cbp_capability,
'transport' => 'obnoviť',
),
'control_args' => array (
'label' => __ ('Zobrazí sa iba vtedy, ak', 'my_theme_textdomain'),
'type' => 'text', // Ovládanie textového poľa
'priority' => 5
)
),
)
);

}

možnosti vrátenia $;
}
add_filter ('thsp_cbp_options_array', 'my_plugin_dependency_options_array', 3);

Chcete vyvinúť a doplnok jadra funkcií používať s témou (ako by ste mali)? Môžete sa pripojiť , Thsp_cbp_options_array ‘ z jedného zo súborov doplnku, rovnako ako zo súboru function.php témy.

Nechoďte do hry Crazy

Vždy, keď pridávate možnosti do vyvíjanej témy, musíte dodržať jeden zo základných princípov WordPress – Rozhodnutie nie Možnosti – na mysli. Je ľahké sa nechať uniesť a začať pridávať používateľské možnosti pre každý drobný detail, ktorý má téma, ale nikomu to neprináleží. Dúfam, že týchto niekoľko trikov, najmä pridanie možností závislých od doplnku, pomôže udržať počet možností vašej témy čo najmenší.

Koniec koncov, ak má vaša téma možnosti pre veci ako každý polomer ohraničenia každého jednotlivého prvku, nie je to téma, je to editor WYSIWYG a pravdepodobne nie veľký..

Kúpili by ste si bielu košeľu, pretože ju môžete s určitým úsilím premeniť na obrus, ale kúpiť si ju preto, že máte radi jej „bielu košeľu“. Témy programu WordPress by mali byť podobné, mali by tiež prezentovať obsah určitým spôsobom, nesnažiť sa robiť všetko, čo je možné. Ak ste vývojár motívov, je vašou úlohou zabezpečiť, aby očakávania používateľov boli tým, čím by mali byť.

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