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