Нови Сад – 12 Радионица за израду Вордпрес тема, 16 март 2019

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

Вордпрес окупљање у Вршцу #WPVŠ 03/19

Добродошли на вршачко Вордпрес окупљање!

Мартовско дружење је (сасвим нетенденциозно) у знаку жена. Упознаћете две успешне пословне жене које ће са вама поделити неке од прича са својих путовања беспућима ИТ-ја, фриленса и предузетнишва.

Мирјана Илић по струци је професор српске књижевности и језика, по опредељењу content kreator& SEO specialist. Последње 4 године креира и оптимизује садржај за веб, бави се едукацијом других као и дигиталним маркетингом.

Очекујте да од ње сазнате одговор на питање зашто је Yоаst SЕО накомфорнији Вордпресов додатак за креирање садржаја? Оптимизација садржаја за претраживаче се одвија на два поља: једно је невидљиво за конзумента (кодови сајта), а друго је видљиво и за алгоритам и за конзумента (kонтент). Оригиналног назива WоrdPress SЕО by Yоаst, овај додатак је „пуштен“ у саобраћај 2008. године и од тад је најефектнији и истовремено најлагоднији Вордпресов плугин за креирање садржаја на српском језику. Биће говора о томе и да ли плугинoви и писање оптимизованог садржаја убијају креативност, као и колико су додаци, заправо, помоћ уколико их не схватите као непријатеље.

Невена Јовановић је почела каријеру као CEO е-commerce портала, уређивала с једне стране girlygirl, а с друге tech и спортске (дакле дечачке) медије, организовала конференције из области нових технологија и друштвених мрежа. Тренутно (али не и коначно) је PR & маркетинг менаџер FitPass-а. Кроз односе са јавношћу и онлине маркетинг обрадила је пројекте из филмске, фешн, политичке и бизнис нише. Холистички приступ маркетингу заокружила је иницијацијом у адвертајзинг, као и медија планирање и медија бајинг. Будући да је радила на (скоро) свим позицијама које данашни васколики маркетинг обухвата, има јединствени угао гледања на тај делокруг посла. Интегрисане комуникације су нешто најближе што је описује. Она је примарно продавац који филозофију sales-а примењује уздуж и попреко, а само се назив паковања тог продајног разговора мења. Мимо тога, Невена је истински љубитељ живота као таквог (без коске), chaser искустава, филозоф и шерет.

Самозвана такозвана „Госпођетина са сопственим хештегом“ долази у Вршац да приближи свој развојни пут Боре Ненси Шнајдера Хамера. Из њеног обраћања постаће вам кристално јасно зашто је маркетинг врло сличан рату и зашто је маркетинг врло сличан игри. Невена ће вам презентовати нове погледе на маркетиншке канале и ефикасније процесе које можете одмах применити и смањити урошак енергије, времена и на крају пара, уз експоненцијални раст продаје.

Окупљање је заказано за петак, 22. март, у 19 часова у Стартит Центру Вршац, који се налази у Centru Millennium, Омладински трг 17.
Присуство предавањима је бесплатно.

Вордпрес 5.1.1

Вордпрес 5.1.1 је доступан. Ово је издање које доноси закрпе безбедоносних пропуста откривених у Вордпресу за сва ранија издања као и поправке неких откривених грешака у Вордпресу 5.1.

Молимо вас да одмах ажурирате своје издање.

Вордпрес окупљање у Београду #WPBGD 6. мартa

У новом издању #WPBGD своја искуства са Вама ће поделити Alexander Gilmanov и Игор Хрчек.

Као и до сада, дружимо се у StartIT центру у Савској улици, преко пута поште са 6.марта 2019 године, са почетком у 18 часова.

Настави са читањем „Вордпрес окупљање у Београду #WPBGD 6. мартa“

Нови Сад – 11 Радионица за израду Вордпрес тема, 02 март 2019

Једанаеста радионица за израду Вордпрес тема је одржана у суботу, 02 марта у новосадском Стартит Центру. Наставили смо са могућностима новог уређивача у теми: правили шаблоне блокова, варијације стилова, мале измене подразумеваних блокова помоћу доступних Javascript филтера. Срели смо се и са wp.i18n и WP CLI.

Шаблон блокова

У документацији новог уређивача тренутно стоји да се шаблони блокова могу додавати преко register_post_type функције за прилагођену врсту чланка или путем get_post_type_object за предефинисане врсте чланка (чланак, страница). Оба ова начина подразумевају качење на init копчу акције.

Ми смо погледали шта нам нуди WP_Post_Type класа и пронашли register_post_type_args филтер који нам омогућава да додамо шаблон директно у аргументе вресте чланка, при чему је провера врсте значајно олакшана.

Сам шаблон представља низ назива блокова и њихових параметара и доста је једноставан за израду. Међутим, пронаћи називе блокова и доступних параметара захтева мало претраге. Све ово још увек није документовано и морамо погледати кôд како бисмо дошли до информација које нам требају.

Тренутно постоје два места где можемо пронаћи назив и параметре блокова. Важно је имати у виду да су се ова места већ мењала и да се то може опет догодити. Ово не мења кôд који ћемо користити (мада се и то до сада већ мењало) али мења место на коме тражимо информације док не буде постојала детаљнија документација за развој.

У самој инсталацији Вордпреса постоји датотека у којој су помоћу Webpack-а генериасани сви блокови. То је тренутно /wp-includes/js/dist/block-library.js. Међутим, како је ово генерисана датотека, доста је напорно читати цео кôд како би се пронашле потребне информације.

Због тога смо ми погледали место где је кôд уређивача у фази пре генерисања, тзв фази развоја, и где је значајно лакше пронаћи информације које нам требају. Тренутно је то https://github.com/WordPress/gutenberg -> packages -> block-library -> src. Овде сваки блок има своју фасциклу и све што нам треба можемо пронаћи у index.js датотеци за сваки блок.

Конкретно за блок параграф можемо пронаћи име у константи name:

export const name = 'core/paragraph';

А доступне параметре у константи schema:

const schema = {
	content: {
		type: 'string',
		source: 'html',
		selector: 'p',
		default: '',
	},
	align: {
		type: 'string',
	},
	dropCap: {
		type: 'boolean',
		default: false,
	},
	placeholder: {
		type: 'string',
	},
	textColor: {
		type: 'string',
	},
	customTextColor: {
		type: 'string',
	},
	backgroundColor: {
		type: 'string',
	},
	customBackgroundColor: {
		type: 'string',
	},
	fontSize: {
		type: 'string',
	},
	customFontSize: {
		type: 'number',
	},
	direction: {
		type: 'string',
		enum: [ 'ltr', 'rtl' ],
	},
};

Дозвољене вредности за сваки параметар нису документоване па је могуће стећи погрешан утисак из назива параметра. На пример, textColor не прихвата кôд за боју већ slug предефинисане или прилагођене боје. У нашој теми би то биле: whitish, redish, grayish и blckish (functions.php – ‘editor-color-palette’). Исто важи и за fontSize, величина фонта није дозвољена вредност већ slug предефинисане или прилагођене величине.

Провера врсте чланка нам омогућава да веома лако раздвојимо шаблоне према врсти чланка што је прилично честа потреба. Тако можемо имати посебан шаблон за странице и посебан за чланке.

Закључавање шаблона

Постоје два нивоа закључавања шаблона:

  • ‘insert’ – Не дозвољава додавање нових блокова али дозвољава промену места постојећим блоковима.
  • ‘all’ – Не дозвољава ни додавање нових блокова ни промену места постојећим блоковима. Ово може бити веома корисно када је неопходно придржавати се дефинисаног распореда али треба имати у виду да је могућ губитак садржаја уколико постоје већ објављени чланци или странице пре него што им је шаблон додељен. Уколико дође до ове могућности, корисник ће бити упозорен обавештењем.

Важно је напоменути да се сви параметри могу мењати у току уноса садржаја без обзира да ли је шаблон закључан или не.

Варијације стилова блока

Неки од подразумеваних блокова долазе са неколико варијација стилова. Један овакав блок је pullquote. Помоћу registerBlockStyle можемо врло лако додати варијације стилова за сваки подразумевани блок.

Назив (вредност параметра name) нашег стила ће бити употребљен за генерисање нове CSS класе помоћу које можемо стилизовати варијацију и у уређивачу и на фронтенду. Модел за класу је:

.is-style-{НАЗИВ-СТИЛА}

Филтери

Javascript филтери у Вордпресу се понашају веома слично PHP филтерима. Имају три параметра: назив филтера, namespace и callback функцију у којој смо дефинисали шта и како желимо да променимо.

Филтер blocks.registerBlockType

Овај филтер нам даје приступ подешавањима блока што смо ми искористили да омогућимо системске класе за блокове листе, параграфа и заглавља, који су једини подразумевани блокови без ове класе: .wp-block-{ИМЕ-БЛОКА}.

Филтер blocks.getBlockDefaultClassName

Овај филтер нам даје директан приступ класама подразумеваних блокова где можемо додати наше прилагођене.

wp.i18n

Заједно са новим уређивачем, Вордпрес је добио и i18n подршку за Javascript. Ово нам омогућава да у Javascript датотекама користимо исте функције за интернационализацију које користимо и у PHP датотекама. Примена је врло једноставна, на почетку Javascript датотеке треба дефинисати функције које ће i18n да претражује.

const { __, _x, _n, _nx } = wp.i18n;

Након овога, помоћу једне команде Вордпресовог алата за командну линију, WP CLI, се једноставно генерише .pot датотека за дати директоријум.

wp i18n make-pot <ПУТАЊА-ДО-ДИРЕКТОРИЈУМА>

Комплетан код са радионице се може преузети са званичног налога Вордпрес Србија заједнице на Github-u.

У следећем термину прелазимо на могућности прилагођавача (Customizer) које можемо користити у теми.

Радионице су бесплатне али је потребно пријавити се на Meetup групи Вордпрес Србија заједнице.