1. 1. Wprowadzenie do dostosowywania motywów WordPress
  2. 2). Interakcja z programem WordPress Customizer
  3. 3). WordPress Theme Customizer Boilerplate
  4. 4. Rozszerzenie szablonu dostosowywania motywu WordPress
  5. 5. Teraz czytam: Szablon niestandardowego szablonu dostosowywania – opcje warunkowe, motywy podrzędne i wtyczki

Do tej pory widzieliśmy, jak łatwo jest obsługiwać opcje motywu za pomocą szablonu dostosowywania motywu i jego haczyków. Jak zapewne pamiętasz, najważniejszym krokiem było zaczepienie się „Thsp_cbp_options_array” filtruj hak i przekazuj mu szereg opcji, których chcesz użyć w swoim motywie.


Jestem pewien, że znasz już akcję WordPress i haki filtrów – API wtyczek – i ich działanie, ale na wszelki wypadek, oto krótkie podsumowanie (na przykład haczyki filtrów). Możesz zdefiniować swoją niestandardową funkcję i podłączyć ją do istniejącego filtra za pomocą funkcji add_filter:

add_filter ($ tag, $ function_to_add, $ priorytet, $ accept_args);

Skupmy się na argumentie pierwszeństwa. Jego domyślna wartość to 10, więc jeśli nie użyjesz innego numeru, to będzie priorytet wykonania Twojej funkcji. Zmniejsz liczbę, wcześniej funkcja zostanie wykonana. Więc jeśli zrobisz coś takiego:

// Dodanie pierwszej wiadomości
funkcja my_theme_add_first_message ($ content) {
$ content. = '

pierwsza wiadomość

„; zwróć zawartość $; } add_filter ('the_content', 'my_theme_add_first_message', 1); // Dodanie drugiej wiadomości funkcja my_theme_add_second_message ($ content) { $ content. = '

Druga wiadomość

„; zwróć zawartość $; } add_filter ('the_content', 'my_theme_add_second_message', 2);

Po wywołaniu funkcji_content w single.php lub dowolnym innym szablonie zostanie wyświetlona treść postu, a następnie Pierwsza wiadomość, a następnie Druga wiadomość. Nie dlatego, że taka jest ich kolejność w tym fragmencie kodu, ale z powodu parametru priorytetu wykonania. Pomyśl o hakach, jakby były śnieżkami toczącymi się ze wzgórza, zbierając po drodze różne rzeczy.

Jak to się odnosi do szablonu dostosowywania motywu?

Możesz się podłączyć „Thsp_cbp_options_array” z pliku function.php motywu przy użyciu funkcji niestandardowej (np. my_theme_options_array) z wartością priorytetu ustawioną na 1. Oznacza to każdą inną funkcję, która łączy się z „Thsp_cbp_options_array” filtr hook zrobi to PO zdefiniowanej wcześniej funkcji my_theme_options_array. Spójrz na ten przykład:

funkcja my_theme_options_array () {
// Korzystanie z funkcji pomocnika w celu uzyskania domyślnej wymaganej zdolności
$ thsp_cbp_capability = thsp_cbp_capability ();

$ options = tablica (
// Identyfikator sekcji
'my_theme_new_section' => tablica (

„exist_section” => false,
'args' => tablica (
„title” => __ („Nowa sekcja”, „my_theme_textdomain”),
„priorytet” => 10
),
„fields” => tablica (
/ *
* Pole radiowe
* /
'my_radio_button' => tablica (
'setting_args' => tablica (
„default” => „opcja-2”,
„typ” => „opcja”,
„capability” => $ thsp_cbp_capability,
„transport” => „odśwież”,
),
'control_args' => tablica (
„label” => __ („My Radio Button”, „my_theme_textdomain”),
„type” => „radio”, // Sterowanie radiowe
„wybory” => tablica (
„opcja-1” => tablica (
„label” => __ („Opcja 1”, „my_theme_textdomain”)
),
„opcja-2” => tablica (
„label” => __ („Opcja 2”, „my_theme_textdomain”)
),
„opcja-3” => tablica (
„label” => __ („Opcja 3”, „my_theme_textdomain”)
)
),
„priorytet” => 3
)
)
)
)
);

zwróć $ opcje;
}
add_filter ('thsp_cbp_options_array', 'my_theme_options_array', 1);

Spowoduje to dodanie nowej sekcji do dostosowywania motywu z jednym polem o nazwie Mój przycisk opcji. Następnie ty lub ktoś inny opracuje motyw podrzędny dla tego motywu i zdecyduje się zachować nową sekcję, ale zamiast Mojego przycisku opcji lepiej może być Moje pole wyboru. Łatwy:

funkcja my_child_theme_options_array ($ options) {
// Korzystanie z funkcji pomocnika w celu uzyskania domyślnej wymaganej zdolności
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Tym razem edytujemy tylko pola w sekcji my_theme_new_section w tablicy $ options
* /
$ options ['my_theme_new_section'] ['fields'] = tablica (
'my_checkbox_field' => tablica (
'setting_args' => tablica (
„default” => true,
„typ” => „opcja”,
„capability” => $ thsp_cbp_capability,
„transport” => „odśwież”,
),
'control_args' => tablica (
„label” => __ („My Checkbox”, „my_theme_textdomain”),
„type” => „checkbox”, // Pole kontrolne Checkbox
„priorytet” => 2
)
)
);

zwróć $ opcje;
}
add_filter ('thsp_cbp_options_array', 'my_child_theme_options_array', 2);

Zauważyłem, że nie przekazałem parametru $ options do my_theme_options_array i czy to w funkcji my_child_theme_options_array? To dlatego, że kiedy po raz pierwszy się podłączyłem „Thsp_cbp_options_array” hook Chciałem przesłonić opcje przykładowego Boilerplate Theme Customizer. Następnie, gdy ponownie podłączyłem się do motywu podrzędnego, nie chciałem całkowicie usuwać opcji motywu nadrzędnego, po prostu nieznacznie je edytowałem. Dlatego bałaganię tylko z $ options [my_theme_new_section ’]] [„ pola ”], a nie całą tablicą $ options.

Oczywiście możesz się również podłączyć „Thsp_cbp_options_array” odfiltruj hak z motywu nadrzędnego więcej niż jeden raz. Załóżmy, że zdecydowałeś się nie dodawać do motywu funkcji terytorium wtyczek i pozwolić wtyczkom robić to, co powinny. Teraz chcesz pokazać niektóre opcje dostosowywania motywu tylko wtedy, gdy aktywna jest określona wtyczka. Ponownie łatwe:

funkcja my_plugin_dependency_options_array ($ options) {
// Korzystanie z funkcji pomocnika w celu uzyskania domyślnej wymaganej zdolności
$ thsp_cbp_capability = thsp_cbp_capability ();

/ *
* Dodanie sekcji my_plugin_dependency_section tylko wtedy, gdy aktywny jest test-plugin.php
* /
if (is_plugin_active ('test-plugin / test-plugin.php')) {

$ options ['my_plugin_dependency_section'] = tablica (
„exist_section” => false,
'args' => tablica (
„title” => __ („Zależność wtyczek”, „my_theme_textdomain”),
„priorytet” => 10
),
„fields” => tablica (
/ *
* Pole tekstowe
* /
// identyfikator pola
'new_text_field' => tablica (
'setting_args' => tablica (
„default” => __ („”, „my_theme_textdomain”),
„typ” => „opcja”,
„capability” => $ thsp_cbp_capability,
„transport” => „odśwież”,
),
'control_args' => tablica (
„label” => __ („Pokazuje tylko, jeśli”, „my_theme_textdomain”),
„type” => „text”, // Kontrola pola tekstowego
„priorytet” => 5
)
),
)
);

}

zwróć $ opcje;
}
add_filter ('thsp_cbp_options_array', 'my_plugin_dependency_options_array', 3);

Chcesz opracować wtyczka podstawowej funkcjonalności do użycia z motywem (tak jak powinieneś)? Możesz się podłączyć „Thsp_cbp_options_array” również z jednego z plików wtyczki, w taki sam sposób, jak z pliku function.php kompozycji.

Opcja Don’t Go Crazy

Za każdym razem, gdy dodajesz opcje do rozwijanego motywu, musisz przestrzegać jednej z podstawowych zasad WordPress – Decyzja nie Opcje – na uwadze. Łatwo jest dać się ponieść emocjom i zacząć dodawać opcje użytkownika dla każdego drobnego detalu, który ma Twój motyw, ale nikomu to nie robi przysługi. Mam nadzieję, że te kilka sztuczek, w szczególności dodanie opcji zależnych od wtyczki, pomoże utrzymać możliwie najniższy poziom opcji motywu.

W końcu, jeśli twój motyw ma opcje takie jak każdy promień obramowania każdego elementu, to nie jest motyw, to edytor WYSIWYG i prawdopodobnie nie świetny.

Nie kupujesz białej koszuli, ponieważ przy odrobinie wysiłku możesz przekształcić ją w obrus, kupujesz ją, ponieważ podoba ci się jej „biała koszula”. Motywy WordPress też powinny być takie, powinny przedstawiać treść w określony sposób, a nie próbować robić wszystko w każdy możliwy sposób. Jeśli jesteś programistą motywów, Twoim zadaniem jest upewnienie się, że oczekiwania użytkowników są takie, jakie powinny być.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me