Дванаеста радионица за израду Вордпрес тема је одржана у суботу, 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 групи Вордпрес Србија заједнице.