- 1. Въведение в персонализатора на теми WordPress
- 2. В момента четете: Взаимодействие с персонализатор на теми за WordPress
- 3. WordPress Тема за персонализиране на котлона
- 4. Удължаване на котлона за персонализиране на темата за WordPress
- 5. Тема персонализатор котел – Условни опции, Детски теми и приставки
В част 1 от серията WordPress Theme Customizer споменах, че за да взаимодействате с персонализатора на теми, трябва да заредите $ wp_customize обект, който е инстанция на WP_Customize_Manager клас. За да направите това, трябва да използвате customize_register кука за действие:
добавяне ('customize_register', 'my_theme_customize_register');
функция my_theme_customize_register ($ wp_customize) {
// Взаимодействие с $ wp_customize обект
}
Можете да поставите този код в темата на function.php или във файл, който е включен в него.
Contents
Добавяне или премахване на елементи за персонализиране на теми (секции, настройки и контроли)
След като сте заредили $ wp_customize обект, можете да използвате всеки от неговите методи за добавяне, получаване или премахване на настройки, контроли и секции в него (add_setting, get_setting, remove_setting, add_control … вие получавате точката).
Така че, ако искате GET или Премахване раздел, управление или настройка, всичко, от което се нуждаете, е неговият идентификационен номер. Този ред ще премахне раздела Цветове (поставете го във функцията my_theme_customize_register от първия фрагмент на код):
$ wp_customize-> Remove_section ('цветове');
Добавянето на секция, контрол или настройка е малко по-различно, защото изисква някои повече параметри. Няма да преживея всички тях тук по две причини:
- Това не е всъщност каква е целта на тази поредица, ще създадем котел за тематичен персонализатор, който можете просто да влезете във вашата тема
- Алекс Мансфийлд вече го обхвана в своето 6000 думи чудовище на Урок за персонализиране на теми че всеки разработчик на WordPress тема трябва да чете и след това да чурулика (сериозно, ако не сте го направили, прочетете го сега).
Но все пак, нека да разгледаме как можете да добавите собствената си настройка с контрола в нов раздел за персонализиране на теми, както и някои от аргументите. Тъй като е много по-лесно да работим с реални примери, ето какво следваме след:
- Нов раздел, озаглавен „Оформление“
- Нова настройка, която съхранява оформлението на вашата тема
- Ново радиоуправление с две опции – странична лента вляво и странична лента вдясно
Първото нещо, което трябва да добавите към персонализатора на теми, е разделът „Оформление“:
$ Wp_customize-> add_section (
// ДОКУМЕНТ ЗА САМОЛИЧНОСТ
"Layout_section",
// Аргументи масив
масив (
'title' => __ ('Оформление', 'my_theme'),
'capability' => 'edit_theme_options',
'description' => __ ('Позволява ви да редактирате оформлението на вашата тема.', 'my_theme')
)
);
Не се опитвайте да го видите в персонализатора все още, раздел няма да бъде показан, освен ако към него има добавена настройка и контрол. Затова нека добавим и двете:
$ Wp_customize-> add_setting (
// ДОКУМЕНТ ЗА САМОЛИЧНОСТ
"My_theme_settings [layout_setting],
// Аргументи масив
масив (
'default' => 'дясна лента',
'type' => 'опция'
)
);
$ Wp_customize-> add_control (
// ДОКУМЕНТ ЗА САМОЛИЧНОСТ
"Layout_control",
// Аргументи масив
масив (
'type' => 'radio',
'label' => __ ('Оформление на темата', 'my_theme'),
'section' => 'layout_section',
'choices' => масив (
'лява странична лента' => __ ('Лява странична лента', 'my_theme'),
'дясна странична лента' => __ ('Дясна странична лента', 'моя_тема')
),
// Последният трябва да съответства на идентификатора на настройката отгоре
'settings' => 'my_theme_settings [layout_setting]'
)
);
Ако приемем, че четете ръководствата на Alex и / или Codex страниците, има само един параметър в масива от аргументи за добавяне на настройки – „type“, върху който бих искал да се съсредоточа. Тук имате две възможности, „опция“ и „тема_мод“ и можете да ги извлечете, като използвате get_option и get_theme_mod, съответно. Винаги използвам „опция“, просто защото ви позволява да сериализирате стойностите на настройките на темите си, като им давате идентификатори като my_theme_settings [setting_1], my_theme_settings [setting_2] По този начин всички стойности ще се съхраняват като един запис в базата данни в таблицата ви wp_options.
И накрая, след като добавихте тези два кодови фрагмента, за да функционирате, в които сте се свързали customize_register кука за действие (първи фрагмент на кода в тази публикация), персонализаторът на темата е персонализиран:
Добавен е нов раздел към персонализатора на теми
Използване на стойностите за настройки на тематичния персонализатор във вашата тема
След като предоставите на потребителите си възможност да съхраняват тази настройка, можете да вземете нейната стойност и да се закачите body_class филтър кука и добавете към масив от съществуващи класове на тялото:
add_filter ('body_class', 'my_theme_body_classes');
функция my_theme_body_classes ($ класове) {
/ *
* Тъй като използвахме 'опция' в масива от аргументи add_setting
* извличаме стойността с помощта на функцията get_option
* /
$ my_theme_settings = get_option ('my_theme_settings');
$ class [] = $ my_theme_settings ['layout_setting'];
върнете $ класове;
}
Това ще добави или лява странична лента, или права в странична лента, за масив от класове на тялото във вашата тема. Използвайки тези два класа във файла style.css на вашата тема, ще можете да създадете два различни оформления. Например:
/ * Страничната лента вдясно е оформление по подразбиране * /
#content {
плувка: вляво;
ширина: 60%;
}
#sidebar {
плувка: дясно;
ширина: 30%;
}
/ * Използване на клас отляво на страничната лента за отмяна на подредбата по подразбиране * /
.лява странична лента #content {
плувка: дясно;
}
.лява странична лента #sidebar {
плувка: вляво;
}
Най-доброто от всичко, благодарение на WordPress Theme Customizer, потребителите могат да визуализират и двете оформления, преди да запазят нещо. Вземете това, страниците за настройки на темата!
Обобщение и допълнително четене
TL; DR версията на тази публикация ще има нещо подобно: Можете да получите $ wp_customize обект и след това или да добавите нещо (раздел, настройка или контрол) към или да го премахнете. Всичко останало се свежда до параметрите на настройките.
Трета част е мястото, където тази поредица става интересна, тъй като ще започнем да автоматизираме целия процес и да работим върху Theme Customizer Boilerplate, който можете да влезете във вашата тема и да започнете да използвате веднага. Продължавайте да се настройвате!