Téma Customizer Boilerplate – podmíněné možnosti, podřízená témata a pluginy

  1. 1. Úvod do WordPress Theme Customizer
  2. 2. Interakce s WordPress Theme Customizer
  3. 3. Kotel WordPress Theme Customizer Boilerplate
  4. 4. Rozšíření kotle WordPress Theme Customizer
  5. 5. Aktuálně čte: Téma Customizer Boilerplate – podmíněné možnosti, podřízená témata a pluginy

Doposud jsme viděli, jak snadné je zpracovat možnosti motivu pomocí kotle Theme Customizer Boilerplate a jeho háčků. Jak si pravděpodobně vzpomínáte, nejdůležitějším krokem bylo zapojení ‘Thsp_cbp_options_array’ filtrujte háček a předávejte mu řadu možností, které chcete použít ve svém motivu.


Určitě jste již obeznámeni s akcí WordPress a filtračními háčky – Plugin API – a jak fungují, ale jen pro případ, zde je rychlá rekapitulace (jako příklad použijte háčky na filtr). Můžete definovat svou vlastní funkci a připojit ji do existujícího filtru pomocí funkce add_filter:

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

Zaměřme se na argument priority. Výchozí hodnota je 10, takže pokud nepoužíváte jiné číslo, bude prioritou provádění této funkce. Snižte číslo, dříve bude vaše funkce provedena. Takže pokud uděláte něco takového:

// Přidání první zprávy
function my_theme_add_first_message ($ content) {
$ content. = '

První zpráva

'; návrat $ content; } add_filter ('the_content', 'my_theme_add_first_message', 1); // Přidání druhé zprávy function my_theme_add_second_message ($ content) { $ content. = '

Druhá zpráva

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

Když zavoláte funkci the_content v single.php nebo v jakémkoli jiném šabloně, zobrazí se obsah příspěvku následovaný první zprávou následovanou druhou zprávou. Ne proto, že je to jejich pořadí v tomto fragmentu kódu, ale kvůli parametru priority provádění. Myslete na háčky, jako by to byly sněhové koule, které se valily z kopce a vybíraly si na cestu všechny druhy věcí.

Jak se to vztahuje na Boilerplate přizpůsobovače motivu?

Můžete se připojit ‘Thsp_cbp_options_array’ ze souboru function.php vašeho motivu pomocí vlastní funkce (např. my_theme_options_array) s hodnotou priority nastavenou na 1. To znamená jakoukoli jinou funkci, která se připojuje ‘Thsp_cbp_options_array’ háček filtru to provede po funkci my_theme_options_array, kterou jste již definovali. Podívejte se na tento příklad:

function my_theme_options_array () {
// Použití pomocné funkce k získání výchozí požadované funkce
$ thsp_cbp_capability = thsp_cbp_capability ();

$ options = array (
// ID sekce
'my_theme_new_section' => pole (

'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',
'schopnost' => $ thsp_cbp_capability,
'transport' => 'refresh',
),
'control_args' => array (
'label' => __ ('My Radio Button', 'my_theme_textdomain'),
'type' => 'radio', // Radio control
'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ácení $;
}
add_filter ('thsp_cbp_options_array', 'my_theme_options_array', 1);

Tím se přidá nový oddíl do Theme Customizer s jedním polem v něm, nazvaným My Radio Button. Pak vy nebo někdo jiný vytvoří pro vaše téma podřízené téma a rozhodne se ponechat si novou sekci, ale namísto My Radio Button může být lepší mít My Checkbox. Snadný:

function my_child_theme_options_array ($ options) {
// Použití pomocné funkce k získání výchozí požadované funkce
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Tentokrát upravujeme pouze pole v my_theme_new_section v poli $ options
* /
$ options ['my_theme_new_section'] ['fields'] = array (
'my_checkbox_field' => pole (
'setting_args' => array (
'default' => true,
'type' => 'option',
'schopnost' => $ thsp_cbp_capability,
'transport' => 'refresh',
),
'control_args' => array (
'label' => __ ('Moje zaškrtávací políčko', 'my_theme_textdomain'),
'type' => 'checkbox', // Řízení pole zaškrtávacího pole
'priority' => 2
)
)
);

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

Všimli jste si, že jsem nepředal parametr $ options do my_theme_options_array a udělal to ve funkci my_child_theme_options_array? To proto, že když jsem se poprvé připojil ‘Thsp_cbp_options_array’ háček Chtěl jsem přepsat ukázkové možnosti kotle Theme Customizer Boilerplate. Poté, když jsem se do něj znovu zapojil ze svého dětského motivu, nechtěl jsem úplně odstranit možnosti rodičovského motivu, jen je mírně upravit. Z tohoto důvodu si zasílám zprávy pouze s možnostmi $ [‘my_theme_new_section’ ‘[‘ ” ”], nikoli s celým polem $ options.

Samozřejmě můžete také připojit ‘Thsp_cbp_options_array’ filtrujte háček z nadřazeného motivu více než jednou. Řekněme, že jste se k tématu nepřidali funkce teritoria pluginů a nechali pluginy dělat to, co mají. Nyní chcete zobrazit některé možnosti nástroje přizpůsobení motivu, pouze pokud je aktivní určitý plugin. Opět snadné:

function my_plugin_dependency_options_array ($ options) {
// Použití pomocné funkce k získání výchozí požadované funkce
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Přidání my_plugin_dependency_section pouze pokud je aktivní '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 pole
'new_text_field' => array (
'setting_args' => array (
'default' => __ ('', 'my_theme_textdomain'),
'type' => 'option',
'schopnost' => $ thsp_cbp_capability,
'transport' => 'refresh',
),
'control_args' => array (
'label' => __ ('Zobrazí se pouze pokud', 'my_theme_textdomain'),
'type' => 'text', // Řízení textového pole
'priority' => 5
)
),
)
);

}

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

Chcete vyvinout plugin pro základní funkce být použit s vaším tématem (jak byste měli)? Můžete se připojit ‘Thsp_cbp_options_array’ z jednoho ze souborů pluginu také stejným způsobem, jako byste to udělali ze souboru function.php motivu.

Nechoď blázen

Pokaždé, když přidáváte možnosti do vyvíjeného tématu, musíte zachovat jeden ze základních principů WordPress – Rozhodnutí ne Možnosti – na mysli. Je snadné se nechat unést a začít přidávat uživatelské možnosti pro každý drobný detail vašeho motivu, ale to nikomu nedělá laskavost. Doufám, že těchto několik triků, zejména přidání možností závislých na doplňcích, pomůže udržet možnosti vašeho motivu co nejnižší.

Nakonec, pokud má vaše téma možnosti pro věci jako každý poloměr ohraničení každého jednotlivého prvku, není to téma, je to editor WYSIWYG a pravděpodobně není skvělý.

Nekupujete si bílou košili, protože s trochou námahy ji můžete přeměnit na ubrus, koupíte ji, protože se vám líbí její „bělostní košile“. Témata WordPress by měla být podobná, měla by také prezentovat obsah určitým způsobem, nesnažit se dělat vše, co by bylo možné. Pokud jste vývojář motivů, je vaší úlohou zajistit, aby očekávání uživatelů byla tím, čím by měli být.

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