Дванаеста радионица за израду Вордпрес тема је одржана у суботу, 16 марта у новосадском Стартит Центру. Овај термин смо посветили прилагођавачу (Customizer).
Објекти прилагођавача
Прилагођавач је сачињен од четири типа објекта: панел, секција, подешавање и контрола. Сваки од њих има три метода, add_, get_ и remove_, који нам омогућавају да прилагодимо прилагођавач различитим потребама. За било какво прилагођавање користимо customize_register копчу акције.
Панел
Подразумевани прилагођавач нема регистрованих панела али их је лако додати помоћу add_panel метода. Панел може садржавати једну или више секција. Уколико ће имати само једну секцију, онда је за корисничко искуство много корисније да та секција буде самостална.
Важно је имати у виду да панел мора да има бар једну секцију да би био видљив у прилагођавачу. Исто тако, да би секција била видљива у прилагођавачу, мора да садржи бај деан пар подешавања и контроле.
Доступне методе: add_panel, get_panel и remove_panel.
Секција
Секција може бити самостална а може и да, поред других секција, припада панелу. Све подразумеване секције су самосталне. За додавање нове секције користимо add_section метод WP_Customize_Manager објекта док за уклањање користимо remove_section. За промену било ког аргумента подразумеване секције користимо get_section.
Подразумеване секције су:
| Назив |
ID |
Приоритет (Редослед) |
| Site Title & Tagline |
title_tagline |
20 |
| Colors |
colors |
40 |
| Header Image |
header_image |
60 |
| Background Image |
background_image |
80 |
| Menus (Panel) |
nav_menus |
100 |
| Widgets (Panel) |
widgets |
110 |
| Static Front Page |
static_front_page |
120 |
| default |
|
160 |
| Additional CSS |
custom_css |
200 |
Доступне методе: add_section, get_section и remove_section.
Подешавање
Подешавање увек иде у пару са контролом. Овде се дефинише да ли ће вредност контроле бити сачувана као option или theme_mod, подразумевана вредност контроле, начин приказивања промене у самом прилагођавачу итд.
Препоручује се да јединствени назив подешавања, ID, буде исти као и контролин јер ово омогућава лакше динамичко приказивање вредности код неких контрола, као што су select и radio.
Доступне методе: add_setting, get_setting и remove_setting.
Контрола
Котрола је заправо поље обрасца помоћу кога добијамо жељену вредност од корисника.
Подразумевана подешавања и контроле:
| Назив |
ID |
Секција |
| Site Title |
blogname |
title_tagline |
| Tagline |
blogdescription |
title_tagline |
| Display Site Title and Tagline |
header_text |
title_tagline |
| Site Icon |
site_icon |
title_tagline |
| Logo |
custom_logo |
title_tagline |
| Header Text Color |
header_textcolor |
colors |
| Background Color |
background_color |
colors |
| Header Image |
header_image |
header_image |
| Header Image Data |
header_image_data |
header_image |
| Header Video |
header_video |
header_image |
| External Header Video |
external_header_video |
header_image |
| Background Image |
background_image |
background_image |
| Preset |
background_preset |
background_image |
| Image Position |
background_position |
background_image |
| Image Size |
background_size |
background_image |
| Repeat Background Image |
background_repeat |
background_image |
| Scroll with Page |
background_attachment |
background_image |
| Your homepage displays |
show_on_front |
static_front_page |
| Homepage |
page_on_front |
static_front_page |
| Posts page |
page_for_posts |
static_front_page |
| CSS code |
custom_css |
custom_css |
Доступне контроле:
- text,
- textarea,
- email,
- url,
- radio,
- select,
- number,
- checkbox,
- dropdown-pages,
- password,
- hidden и
- date.
Доступне напредне контроле:
- WP_Customize_Image_Control,
- WP_Customize_Color_Control,
- WP_Customize_Media_Control,
- WP_Customize_Upload_Control,
- WP_Customize_Background_Image_Control,
- WP_Customize_Background_Position_Control,
- WP_Customize_Cropped_Image_Control,
- WP_Customize_Site_Icon_Control,
- WP_Customize_Theme_Control,
- WP_Customize_Code_Editor_Control,
- WP_Customize_Date_Time_Control
Доступне методе: add_control, get_control и remove_control.
Селективно освежавање
Како би корисничко искуство живог прегледа промена у прилагођавачу било што ефикасније, уместо освежавања целе странице, могуће је освежавање само елемента који се мења на страници. Ово се постиже transport параметром у подешавању и додавањем подешавања у selective_refresh објект.
Санитизација
Сваку вредност коју добијамо као унос корисника је неопходно припремити за похрањивање у базу података. Тај процес се назива санитизација.
У Вордпресу постоје готове функције које врше санитизацију за одређене типове вредности. Називи већине ових функција започињу са sanitize_.
За вредности које можемо очекивати из прилагођавача а за које не постоје припремљене функције, санитизацију вршимо помоћу прилагођених функција. Вордпресов тим за преглед тема, WPTRT, је припремио низ примера доступних на Github-u.
Комплетан код са радионице се може преузети са званичног налога Вордпрес Србија заједнице на Github-u.
Следећи термин ћемо посветити напреднијом употребом прилагођавача помоћу Кирки додатка.
Радионице су бесплатне али је потребно пријавити се на Meetup групи Вордпрес Србија заједнице.