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

Девета радионица за израду Вордпрес тема је одржана у суботу, 02 фебруара у новосадском Стартит Центру. Упознали смо се са функцијама за интернационализацију и алатима за локализацију теме.

Једноставни текст

Када у кôду имамо једноставан текст без динамичких вредности или елемената специфичних за одређени језик (као што су бројеви, датум и време), можемо користити неколико функција за интернационализацију, у зависности од места на коме се текст налази и коју улогу игра.

__(), _e() – најједноставнија функција која враћа, одн. принта текст и замењује га локализованим преводом, уколико постоји.  

esc_html__(), esc_html_e() – преводи исто као и горе неведене функције, и врши escaping за HTML.

esc_attr__(), esc_attr_e() – преводи исто као и горе неведене функције, и врши escaping за атрибуте.

Контекст

Функције за додавање контекста не праве никакву разлику у самом процесу и функционалности локализације али су од великог значаја за преводиоца.

Конкретно у енглеском језику постоје речи које се исто пишу као глагол и као именица али имају потпуно другачије значење: post (именица: чланак; глагол: послати), book (именица: књига; глагол: резервисати) итд.

У оваквим случајевима контекст представља огромну помоћ да се, без потребе гледања у кôд, израз прецизно преведе.

_x(), _ex() – функција са контекстом која враћа, одн. принта текст и замењује га локализованим преводом, уколико постоји.

esc_html_x(), esc_attr_x() – преводе исто као и горе неведене функције, и врше escaping за HTML, одн атрибуте.

Једнина и множина

Функције за разликовање једнине и множине у зависности од прослеђеног броја такође могу бити са или без контекста.

Помоћу ових функција алати за локализацију препознају да треба да примењују адекватан формат множине за дати локал.

_n(), _nx() – у зависности од прослеђеног броја враћа стринг за једнину или за множину.

Формат броја

Функција за форматирање броја користи глобалну варијаблу $wp_locale, како би број био правилно форматиран за дати локал (сепаратор за хиљаде и децимална тачка).

Нпр.

САД – 1,024.00

РС – 1.024,00

number_format_i18n() – не ставља се у функцију за интернационализацију али се враћена врдност може користити за приказ броја у склопу локализованог стринга.

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

printf(
	/* translators: 1: number of comments, 2: post title */
	_nx(
		'%1$s Reply to %2$s',
		'%1$s Replies to %2$s',
		get_comments_number(),
		'comments title',
		'radionica'
	),
	number_format_i18n( get_comments_number() ),
	get_the_title()
);

Формат датума и времена

Као и код форматирања броја, функција за локализовање датума и времена користи глобалну варијаблу $wp_locale у којој су, између осталог, сачувани називи месеци и дана у недељи за сваки локал.

date_i18n() – такође се користи ван функције за интернационализацију али може да проследи своју вредност једној таквој функцији.

Језичка целина

Приликом писања кôда и припреме за интернационализацију, веома је важно имати у виду да различити локали имају различиту језичку синтаксу и користи различит редослед речи у реченици за исказивање исте садржине.

Због овога је важно задржати логичну језичку целину у истом стрингу. Ово није проблем уколико не постоји динамичка вредност унутар целине, међутим, у ситуацијама када се динамичке вредности нађу унутар целине девелопери понекад прибегавају “лакшем” решењу и исцепкају целину на мање делове. Ово треба по сваку цену избегавати.

Како би се сачувала целина најчешће се користе следеће PHP функције: sprintf() и printf().

Алати за локализацију

Од бројних алата за локализацију који су данас доступни, у радионици смо се упознали са два: Poedit и Loco додатак.

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

У подешавањима кључне речи изгледају овако (све функције за интернационализацију које смо користили):

"X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c\n"

Loco је додатак за Вордпрес који служи искључиво за локализацију. За разлику од осталих додатака, он посетиоцима веб места не даје могућност пребацивања садржаја на све доступне локале. Он приказује само онај локал који је изабран у контролној табли.

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

Осим ових, постоје и напредни алати помоћу којих се могу генерисати датотеке за локализацију. Поменућемо два:

WP-CLI

wp i18n make-pot path/to/your-theme-directory

grunt-wp-i18n

Транслитерација

Српски језик је један од ретких који користи два писма, ћирилицу и латиницу. Како се транслитерација врши само из ћирилице у латиницу (обрнути смер даје грешке у многим ситуацијама), иницијални превод се врши на ћирилици.

Затим је транслитерацију могуће остварити путем додатака, ми смо користили SrbTransLatin али он није једини додатак који обавња ову функцију.

Датотеке

Постоје три врсте датотека које учествују у процесу локализације Вордпреса.

POT (Portable Object Template)

.pot – Генерише се из gettext функција у кôду. Ова датотека која садржи све стрингове за превођење, пронађене у теми, додатку или било којој претходно изабраној фасцикли. Стрингови су најчешће на енглеском језику.

Стринг из .pot датотеке:

#. 1: number of comments, 2: post title
#: template-localisation.php:182
#, php-format
msgctxt "comments title"
msgid "%1$s Reply to %2$s"
msgid_plural "%1$s Replies to %2$s"
msgstr[0] ""
msgstr[1] ""

PO (Portable Object)

.po – Генерише се из .pot датотеке и ова датотека која је њена скоро идентична копија. Разлика је у дефинисању специфичности локала: назив језика, форма множине и сл. У ову датотеку се, ручно или путем неког алата, уписује превод на жељени локал.

Горе наведени стринг али из .po датотеке за српски локал:

#. 1: number of comments, 2: post title
#: template-localisation.php:182
#, php-format
msgctxt "comments title"
msgid "%1$s Reply to %2$s"
msgid_plural "%1$s Replies to %2$s"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""

MO (Machine Object)

.mo – Генерише се из .po датотеке, потпуно је нечитљива људима и ово је заправо датотека коју Ворпрес чита и користи за локализацију. За ову датотеку је јако важно како је названа и њено име ће да зависи од фасцикле у којој се налази.

Локација и име .mo датотеке

Када се у контролној табли Вордпреса промени језик, истог тренутка се у фасцикли wp-content генерише languages фасцикла. Ту су све датотеке за локализацију свих тема и додатака пронађених у инсталацији Вордпреса а које је Вордпрес преузео са translate.wordpress.org. Теме и додаци овде имају своје засебне фасцикле а именовање датотека се врши према шеми:

ИМЕ-ТЕМЕ-ЛОКАЛ.mo (radionica-sr_RS.mo, radionica-sr_RS.po)

Уколико датотеке за локализацију одређене теме или додатка не постоје на translate.wordpress.org, Вордпрес ће покушати да их пронађе у корену теме, одн. додатка. У ово случају се изоставља назив теме/додатка из назива датотеке и остаје само ознака за локал (sr_RS.mo, sr_RS.po). Да бисмо могли на овај начин да користимо датотеке за локализацију, неопходно је омогућити локализацију у кôду.

load_theme_textdomain( 'radionica' );

Ради веће прегледности и боље организације, могуће је померити датотеке за локализацију у засебну фасциклу, најчешће languages. Да би ово функционисало неопходно је додати нову локацију у претходну функцију. Датотеке и овде задржавају само ознаку за локал у свом називу.

load_theme_textdomain( 'radionica', get_theme_file_path( '/languages' ) );

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

У следећем термину се бавимо подршком теме за нови уређивач, познат под називом Гутенберг.

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

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

Прва радионица за израду Вордпрес тема у 2019 години је одржана у суботу, 19 јануара у новосадском Стартит Центру. У овом термину смо се посветили писању сигурнијег кôда помоћу тзв. escaping функција.

HTML

За једноставне стрингове који садрже само текст се користе esc_html() или esc_textarea(). PHP функција која овде обавља велики део филтрирања је htmlspecialchars().

Уколико очекујемо да стринг садржи и HTML ознаке онда можемо користити wp_kses_post() или wp_kses(). На овај начин ћемо обезбедити основно обликовање без бојазни да ћемо дозволити оне ознаке које могу пореметити распоред елемената на страници или чак направити неку већу штету.

Уколико не знамо шта можемо очекивати у стрингу а желимо да омогућимо обликовање као код садржаја или одломка чланка, можемо користити филтере за садржај, the_content, одн. oдломак, the_excerpt. Одломак ће вратити обликовање као и wp_kses_post() док садржај додаје и могућност правилног обликовања кратких кôдова (shortcode).

Атрибути

За филтрирање атрибута постоји посебна функција, ecs_attr(), која обавља потпуно исту обраду стринга као и esc_html().

URL

Уколико није дефинисан протокол, esc_url() ће га додати у облику “http://” на било који стринг који му је прослеђен. Подразумевани протоколи се могу пронаћи у wp_allowed_protocols(), где се, такође, могу додати и нови путем достпуног филтера.

Веома корисна функција за заштиту од нежељене поште је antispambot(). Она претвара сваки карактер е-поште у HTML ентитет и тиме сакрива од ботова присуство е-поште на страници.

Javascript

Пре свега је важно избегавати тзв “inline Javascript” колико год је то могуће. Уколико, ипак, постоји потреба за оваквом употребом скрипте, онда се препоручује филтрирање помоћу wp_json_encode() у комбинацији са esc_attr(), што се показало као много сигурнија опција од предвиђене esc_js() функције.

Уколико је потребно Javascript датотеци проследити одређене податке из PHP-a, може се користити функција wp_localize_script(). Иако је предвиђена да прослеђује стрингове спремне за локализацију, ова функција се у пракси користи и за прослеђивање свих осталих типова вредности (бројева, булеана итд) који се могу динамички користити у Javascript кôду.


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

У следећем термину ћемо се упознати са функцијама за интернационализацију теме, припремићемо целу тему за локализацију и, уз помоћ Поедита (софтвера за превођење), направити датотеке помоћу којих се врши превод.

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

Нови Сад – 7 Радионица за израду Вордпрес тема, 22 децембар 2018

Последња радионица за израду Вордпрес тема у 2018 години је одржана у суботу, 22 децембра у новосадском Стартит Центру. У овом термину смо се посветили бочној траци, виджетима и различитим приказима архива.

Бочна трака

Као носиоца различитих виджета, бочну траку смо регистровали и додали у sidebar.php и позвали у index.php путем get_sidebar() функције. Како бисмо избегли празан HTML markup, као и празан простор на страници када ниједан виджет није додат у бочну траку, употребили смо is_active_sidebar() функцију за проверу постојања виджета и body_class копчу да додамо прилагођену класу за <body> ознаку.

Архиве

Вордпрес има велики потенцијал у пролагођавању архива различитим потребама веб места. Ми смо се посветили специфичностима неких од њих.

archives.php

Односи се на приказ свих архива и, уколико постоји у теми, преузима ову улогу од index.php шаблона. Приказ назива и описа архиве је поједностављен функцијама the_archive_title() и the_archive_description().

Уколико подразумевани назив и опис не одговарају потребама веб места, или не постоје и не могу се додати из контролне табле (као што је случај са описом архива датума), промена је веома једноставна употребом филтер копчи get_the_archive_title и get_the_archive_description.

date.php

Односи се на све архиве датума: година, месец и дан. Преузима улогу шаблона за архиве датума од archives.php или index.php шаблона, уколико archives.php шаблон не постоји у теми.

Уколико постоји потреба, могуће је раздвојити архиве датума на year.php, month.php и day.php ради даљег прилагођавања.

author.php

Односи се на архиве аутора и преузима улогу шаблона за архиве аутора од archives.php или index.php шаблона. Подразумевано су доступни додатни подаци аутора (аватар, биографија, сва поља из профила) а могуће је додатно персонализовати архиву употребом прилагођених изборника и сл.

search.php

Посебан вид архиве који приказује резултате претраге. Ово је згодно место за приказ формулара за претрагу путем get_search_form(), а такође су нам доступне и кључне речи претраге у функцији get_search_query().

Уколико је неопходно изменити HTML самог формулара за претрагу, то је могуће урадити у посебно делу шаблона searchform.php.

Bug

Обзиром да подразумевена претрага Вордпреса претражује кључне речи у пољима за наслов, садржај и одломак чланка и странице, нама се на архиви резултата претраге појавила PHP нотификација када је одломак празан у чланку. Ово је узроковано кодом из нашег прилагођеног изборника (лоциран у inc/class-custom-walker-nav-menu.php, линија 138). Ову линију смо померили унутар провере постојања одломка, на линију 155, и тиме је нотификација успешно уклоњена. Ову промену можете видети овде.


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

У следећем термину се бавимо локализацијом и припремом теме за превођење, уз неминовно упознавање са функцијама за escaping различитих вредности.

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

Нови Сад – 6 Радионица за израду Вордпрес тема, 08 децембар 2018

У суботу, 8 децембра 2018 године у новосадском Стартит Центру је одржана шеста радионица за израду Вордпрес тема. Наставили смо са шаблоном појединачног чланка и завршили ову област, започету на петој радионици.

Коментари

За измену приказа листе коментара смо користили callback, и наишли на тзв bug у коду самог Вордпреса. Када се нађемо у оваквој ситуацији веома је корисно пријавити bug, прилагодити код тренутном стању и сачекати да исправак кода стигне у званичну верзију Вордпреса. Уколико знате и како да направите исправак, цео процес се значајно убрзава.

Пријавили грешку у коду и уједно доставили исправак (#45498). Сада можемо да чекамо верзију 5.1, за коју је предвиђено да садржи овај исправак.  

Образац за коментаре смо изменили на неколико начина. Који начин изабрати зависи искључиво од тога које су размере и природа промене. Уколико желимо у потпуности да изменимо HTML markup обрасца онда има смисла измене проследити као параметар comment_form() функције.

Уколико само желимо да изменимо места пољима или да искључимо поједина поља обрасца онда је сасвим довољно користити comment_form_fields филтер копчу.

Од осталих функција везаних за шаблон коментара, додали смо наслов секције у зависности од броја коментара, функцију за кретање коментара, the_comments_navigation() и обавештења за затворене коментаре или неопходну регистрацију и пријаву уколико је то подешено у контролној табли.

Облик чланка

Облик чланка је посебан вид издвајања појединих чланака према одређеним критеријумима који отвара могућност засебног шаблона за приказ чланка. Различити облици чланка су доступни путем подршке теме.

Прилагођен шаблон чланка

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


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

У следећем термину ћемо се посветити виджетима и различитим приказима архива. Уједно, овим завршавамо основну обуку развијања тема а од јануара прелазимо на напредније теме. Локализација и припрема теме за превођење, подршка теме за нови уређивач (познат под кодним именом “Гутенберг”), прилагођена подешавања у прилагођавачу су само неке од области којима ћемо се бавити у 2019 години.

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

Нови Сад – 5 Радионица за израду Вордпрес тема, 24 новембар 2018

Након дуже паузе у новосадском Стартит Центру је одржана пета радионица за израду Вордпрес тема. Бавили смо се шаблоном појединачног чланка и његовим специфичним елементима.

Прилагођени део шаблона

Како бисмо обезбедили прилагођен изглед и функционалност, а опет избегли превише кондиционала за различите приказе садржаја (страница, чланак на архивама и сл), део шаблона за приказ садржаја, entry.php, смо копирали и сачували као entry-post.php. Ово нам је дало могућност да позовемо entry-post.php у single.php на динамички начин:

get_template_part( '/template-parts/entry', get_post_type() );

Ово значи да ће entry-post.php бити учитан уколико се налазимо на типу чланка post. Међутим, уколико постоји тип чланка нпр. book а не постоји entry-book.php, када се нађемо на овом типу чланка видећемо да је учитан entry.php.

Мета

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

Датум је могуће форматирати на различите начине али се препоручује да се у коду не инсистира на одређеном формату јер сваки корисник у контролној табли има могућност прилагођавања формата свом језику. Формат смо дефинисали једино за потребе datetime атрибута јер се он користи у мапама сајта.

Обележавање страница и кретање (пагинација и навигација)

Појединачни чланак се може поделити на више страница, што се врши помоћу wp_link_pages() функције и додавања <!–nextpage–> ознаке у садржају. Такође, могуће је кретати се од једног до другог чланка директно са странице чланка помоћу the_post_navigation() функције.

Као и код сваке навигације, и овде имамо наслов који описује само кретање. Овај наслов је важан за све читаче екрана који се користе при асистивним технологијама. Уолико не желимо да се овај наслов види можемо га врло лако сакрити помоћу screen-reader-text класе при чему ће и даље бити доступан за читаче.

Коментари

За приказивање листе коментара, као и обрасца за коментаре, неопходно је додати comments.php део шаблона, а у шаблону single.php учитати коментаре путем comments_template() функције. Доступна је и поршка за HTML5 и за листу и за образац.

Функционалност коментара је доста комплексна и флексибилна. Постоји низ начина на које можемо прилагодити систем коментара, од Walker класе, преко callback функције, па све до читавог низа копчи (филтера и акција). Неке од ових начина смо испробали на радионици а неке ћемо проучити у следећем термину.


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

У следећем термину ћемо наставити са прилагођавањем обрасца за коментаре, преосталим ознакама које се користе у comments.php шаблону, као и осталим начинима прилагођавања шаблона појединачног чланка.

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

Нови Сад – 4 Радионица за израду Вордпрес тема, 20 октобар 2018

Нови Сад – Радионица за израду тема
Полазници четврте радионице за израду Вордпрес тема

У суботу, 20 октобра 2018, у новосадском Стартит Центру је одржана четврта радионица за израду Вордпрес тема. Радионица је била посвећена мало напреднијој теми, Walker_Nav_Menu.

Изборник је таксономија док су ставке изборника post_type објекти.

Walker_Nav_Menu::start_lvl

Односи се на отварајућу ознаку листе, <ul>, сваког под-изборника. Враћа целокупан markup пре <ul>, као и <ul> са класама и одговарајућим размацима, item_spacing.

Уколико је потребно само променити или додати класе или аргументе изборника, онда се може користити доступан филтер, nav_menu_submenu_css_class, и нема потребе иницијализовати цео Walker.

Извор: Walker_Nav_Menu::start_lvl

Walker_Nav_Menu::end_lvl

Односи се на затварајућу ознаку листе, </ul>, сваког под-изборника.

Извор: Walker_Nav_Menu::end_lvl

Walker_Nav_Menu::start_el

Односи се на отварајућу ознаку сваке ставке, <li>, као и на одговарајућу везу, <a></a>. Овде је могуће изменити и/или додати атрибуте за сваку ставку без обзира ком нивоу изборника припада, као и за сваку везу.

Могуће је поништити или дефинисати аргументе из wp_nav_menu(), као што су before, after, link_before и link_after, што уз употребу одговарајућих кондиционала значајно олакшава додавање помоћних ознака код ставки које садрже под-изборнике.

Чак је могуће убацити било који садржај везан за ставку – ако је чланак или страница онда имамо на располагању све што можемо приказати у њиховим шаблонима (наслов, садржај, исечак, издвојену слику, аутора, коментаре, датум итд); ако је у питању таксономија могуће је приказати њене чланове, број чланака у сваком члану..

Доступни филтери: nav_menu_item_args, nav_menu_css_class, nav_menu_item_id, nav_menu_link_attributes, the_title, nav_menu_item_title и walker_nav_menu_start_el.

Могућности су неограничене, не само у модификацији изборника већ и у сврси за коју се може користити.

Извор: Walker_Nav_Menu::start_el

Walker_Nav_Menu::end_el

Односи се на затварајућу ознаку сваке ставке, </li>.

Извор: Walker_Nav_Menu::end_el

Корисна Вордпрес функција wp_trim_words()

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

У следећем термину ћемо наставити са подразумеваним особинама теме, подршком за пост формате, HTML5, те осталим подразумеваним шаблонима.

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

Нови Сад – 3 Радионица за израду Вордпрес тема, 06 октобар 2018

Трећа радионица за израду Вордпрес тема је одржана у суботу, 6 октобра 2018, у просторијама новосадског Стартит Центра. Цела радионица је била посвећена подразумеваним особинама теме које се активирају помоћу add_theme_support() функције.

Полазници треће радионице за израду Вордпрес тема – аутор Стевица Голошин

Прилагођени лого

Да би се користила функционалност прилагођеног логоа у прилагођавачу неопходно је, пре свега, активирати је уз помоћ add_theme_support( ‘custom-logo’ ) функције. Затим се на месту где желимо да прикажемо лого, најчешће у header.php шаблону, позивају функције за приказ логоа. Неке од њих су has_custom_logo(), the_custom_logo() и the_custom_logo().

У ситуацијама када нам предефинисани Вордпресов markup не одговара, можемо користити доступне филтере, као што је филтер копча get_custom_logo. На овај начин врло једноставно прилагођавамо приказ логоа нашим потребама при чему и даље користимо предности Вордпресове предефинисане функционалности.

Аутоматске везе довода

Ова особина не мења изглед и функционалност веб места али је изузетно важна за сваки блог. Додавањем add_theme_support( ‘automatic-feed-links’ ) у functions.php датотеку омогућавамо посетиоцима веб места да се лако пријаве на претплату нових чланака и коментара.

Ознака наслова

Помоћу add_theme_support( ‘title-tag’ ) функције активирамо подршку за ознаку наслова што омогућава страницама веб места адекватан наслов за претраживаче. Подразумевани наслови су дефинисани у wp_get_document_title() функцији у којој можемо пронаћи и филтере за измену наслова, document_title_parts, и сепаратора, document_title_separator.

Прилагођена позадина

Прилагођена позадина за <body> ознаку се активира додавањем add_theme_support( ‘custom-background’ ) функције. Ова функционалност додаје две нове контроле у прилагођавачу и нуди читав низ подешавања које можемо дефинисати као подразумеване, укључујући боју и слику.

Издвојена слика

Функционалност издвојене слике, која се активира додавањем add_theme_support( ‘post-thumbnails’ ) функције, баш као и прилагођени лого, захтева додатни код у шаблонима. За приказ издвојене слике, онако како је предефинисан у Вордпресу, довољно је свега пар функција као што су has_post_thumbnail() и the_post_thumbnail(), док су за прилагођавање доступни филтери.

Димензије слика се могу прилагодити помоћу add_image_size() функције. Како бисмо применили нове димензије и на све већ постојеће слике у галерији садржаја, препоручен је Force Regenerate Thumbnails додатак. Његова предност у односу на друге сличне додатке је што он, поред тога што примењује нове димензије на све постојеће слике, проверава све регистроване димензије и уклања оне слике које су сечене према димензијама које се више не користе.

Прилагођено заглавље

Функционалност прилагођеног заглавља омогућава додатни издвојени садржај, слику или видео, које је предвиђен да буде допуна идентитету веб места али је, у пракси, могуће користити је у било коју сврху. Активира се помоћу add_theme_support( ‘custom-header’ ) функције и, као и прилагођена позадина, има читав низ подешавања који се могу дефинисати као подразумевани.

За разлику од прилагођене позадине, прилагођено заглавље захтева додатни код у шаблонима. Неке од доступних функција су get_header_image(), get_custom_header(), header_image() и the_custom_header_markup().

Изборници

Изборници се користе у различите сврхе на веб местима. Основна функционалност кретања кроз веб место се постиже функцијом wp_nav_menu(). Додатна функционалност и већа контрола над изборницима се постиже регистрацијом прилагођених изборника, register_nav_menus().

Аутор форографија Стевица Голошин.

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

У следећем термину ћемо се посветити прилагођавању изборника кроз Walker_Nav_Menu класу.

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

Нови Сад – 2 Радионица за израду Вордпрес тема, 29 септембар 2018

На другој радионици за израду Вордпрес тема, одржаној 29-ог септембра у новосадском Стартит Центру, полазници су започели израду самосталне теме за Вордпрес, назване “Радионица”.

Полазници друге радионице за израду Вордпрес тема – аутор Филип Петронијевић

Решавањем грешака и упозорења од стране Вордпреса, полазници су се упознали са минимумом кода, неопходним да се нова тема доведе у стање да може да се инсталира.

Ово, пре свега, подразумева постојање style.css датотеке са добро познатим коментаром; затим је неопходна index.php датотека у којој се позивају заглавље, get_header(), и подножје, get_footer(); те шаблони за заглавље, header.php, и подножје, footer.php, са неопходним позивима за адекватне копче: wp_head() и wp_footer().

Приказивање садржаја на “frontendu” смо започели функцијама за приказивање назива и описа веб места: bloginfo(), get_bloginfo(), home_url(); основном петљом и двема функцијама за приказ наслова, the_title(), и садржаја, the_content(), уноса у оквиру петље. Такође, увели смо још једну датотеку, function.php, неопходну за учитавање стилова, style.css.

Милана Цап - Радионица за израду тема
Милана Цап, предавач – аутор Филип Петронијевић

Како Вордпрес подржава три основна типа шаблона: чланак, страница и архива; полазници су се упознали са датотекама за ове основне шаблоне: single.php и page.php, при чему је index.php престао да буде датотека за све шаблоне и постао шаблон само за архиве.

Овом приликом су полазницима представљене основе подразумеваних шаблона и њихових делова, различити шаблони за приказ чланака, страница као и специфична хијерархија Вордпресових шаблона.

Велику помоћ у развијању чистог и одрживог кода чине тзв. делови шаблона, get_template_part() и кондиционали (is_archive(), is_home(), is_single(), is_front_page()). Полазници су се упознали са основним начином функционисања и употребом делова шаблона и кондиционала, које ће све више користити у даљем раду и развоју теме. У међувремену, листа свих кондиционала се може пронаћи овде.

За крај смо додали главни wrapper и  основни markup за уносе како би цела страница добила на семантици. Овом приликом смо се упознали са још неколико функција, корисних у оквиру петље: post_class(), the_ID(), the_category() и the_tags().

Аутор форографија Филип Петронијевић.

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

На следећој радионици, која ће се одржати 6 октобра 2018, ћемо се упознати са подршком теме (add_theme_support()), шта она представља и како се имплементира подршка за различите особине теме.

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

Нови Сад – 1 Радионица за израду Вордпрес тема, 15 септембар 2018

У Стартит Центру у Новом Саду је, 15 септембра 2018, успешно одржана прва радионица за израду Вордпрес тема. Посећеност је била много боља од очекиване, чак 50-ак полазника, чији утисци су махом позитвни.

Полазници радионице у Стартит Центру

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

Укратко, прво се учитају датотеке у којима су важна подешавања и повезивање са базом података; затим тзв. „МУ додаци“ („Must Use Plugins“), активни додаци, child тема, родитељска тема, тренутни корисник и на крају шаблони активне теме. Више о овоме се може прочитати на следећим везама:

Остатак радионице је био посвећен изради child теме за Twentyseventeen тему. Циљ није био да се направи тема која ће се понашати или изгледати другачије од родитељске; циљ је био да се упознамо са специфичностима израде child теме у смислу приоритета и редоследа учитавања стилова и скрипти; као и који су то разлози и ситуације у којима се одлучујемо да правимо child тему.

Уколико се тема неће користити у потпуности таква каква је приликом инсталације, онда је то први знак и прави тренутак да се направи child.

Као што смо видели, учитавање стилова и скрипти путем функција wp_enqueue_style() и wp_enqueue_script() у великој мери зависи од тога како су исти позвани у родитељској теми. Ту смо се упознали са wp_enqueue_scripts копчом, као и различитим функцијама за лоцирање датотека:

Поменули смо и нове функције за лоцирање датотека, уведене у 4.7 верзији Вордпреса, а са којима ћемо се боље упознати у неким од наредних радионица.

Затим смо видели на које све начине је могуће променити изглед и понашање родитељске теме кроз child тему:

  • Модификација стилова у style.css,
  • Путем подршке теме:  add_theme_support() и remove_theme_support(),
  • Уклањање копчи додатих у родитељској теми: remove_filter() и remove_action(),
  • Модификација родитељске функције са function_exists провером,
  • Копирање шаблона из родитељске теме на исту путању у child теми,
  • Модификација прилагођеног филтера, дефинисаног у родитељској теми помоћу add_filter().

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

На следећој радионици, која ће се одржати 29 септембра 2018, започећемо израду самосталне теме са акцентом на подразумеване шаблоне и основну петљу.

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

Нови Сад – Радионице за развијање Вордпрес тема

Од септембра 2018 ће српска Вордпрес заједница у Новом Саду почети да држи бесплатне радионице за израду Вордпрес тема. Веома је важно нагласити да ћемо у радионицама развијати теме писањем PHP кода. Нећемо користити тзв “page buildere” или било које сличне додатке. Дакле, радионице су осмишљене да унапреде знање девелопера, не имплементатора.

Радионице ће водити Милана Цап.

  1. Место
  2. Термини
  3. План и програм
  4. Неопходно предзнање
  5. Припрема
  6. Шта ако немам преносни рачунар?
  7. За кога су ове радионице?
  8. За кога нису ове радионице?
  9. Како се пријавити?
  10. Како помоћи?
  11. Спонзори
  12. Кодекс понашања

Место

Сад већ вишегодишњи пријатељ Вордпрес Србија заједнице, Стартит Центар је још једном пружио подршку отвореном софтверу и иницијативи да се исти негује и развија.

Све радионице ће се одржавати у новосадском Стартит Центру, у улици Мирослава Антића 2.

Термини

Све радионице ће се одржавати суботом од 11 до 14 часова. Укупно је договорено 16 термина, два пута месечно, при чему смо се трудили да то буде свака друга субота. Како бисмо ускладили све термине са Стартитовим календаром “свака друга субота” није доследно спроведена што се огледа у томе да су поједини термини две узастопне суботе и сл.

Датуми су следећи:

  • 15, 29 Септембар 2018
  • 6, 20 Октобар 2018
  • 10, 24 Новембар 2018
  • 8, 22 Децембар 2018
  • 19 Јануар 2019
  • 2, 16 Фебруар 2019
  • 2, 16, 30 Март 2019
  • 13, 20 Април 2019

План и програм

Тешко је предвидети брзину којом ће се прелазити преко предвиђених области због различитих предзнања и брзине учења полазника. Ипак, оно што можемо донекле да планирамо је редослед области:

  • Анатомија Вордпреса и теме
  • Child тема
  • Родитељска/самостална тема за wordpress.org
  • Родитељска/самостална тема за веб маркете (Theme Forest, Creative Market, wordpress.com)
  • Алати за напредно окружење развоја

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

Неопходно предзнање

Вордпрес је писан у PHP језику и на радионицама ће се учити разумевање и писање Вордпресовог PHP-а. Претходно познавање овог језика и/или Вордпресових “core” функција је свакако плус али није неопходно.

Ипак, предмет радионица неће бити основе PHP-а. Нећемо се бавити основном синтаксом и претпоставићемо да су полазници упознати са отварајућим/затварајућим PHP таговима, да знају шта у коду значи echo и сл. Користићемо Вордпресове званичне стандарде писања кода.

Наравно, није забрањено похађати радионицу уколико полазник није упознат са основном синтаксом али је, у том случају, веома важан самосталан рад и учење свега што кочи успешно праћење радионица. Препоручујем да се почне овде: PHP Manual.

Javascript, HTML и CSS су саставни део сваког веб места и користићемо их колико је неопходно. Нећемо правити „лепу“ тему и нећемо трошити време на стилизацију онога што развијамо али постоји велика вероватноћа да ћемо писати и Javascript и HTML и CSS. Као и са основама PHP језика, и овде ћемо претпоставити да полазници поседују знање неопходно да се разуме шта је написано и шта се жели постићи.

Припрема

Локално окружење је предуслов за развијање, не само Вордпрес тема већ апсолутно свега везаног за веб. Такође, локално окружење је неопходно да би се обављао преглед тема (theme review).

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

Навешћемо неколико релативно једноставних решења.

Сви оперативни системи:

Windows и MacOSX:

Уколико немате локално окружење и инсталацију Вордпреса потражите документацију на горе наведеним везама. Такође, постоји јако пуно објављених упутстава. Само треба да пронађете оно које одговара вашем оперативном систему. Можете кренути одавде:

Обзиром да ћемо се позабавити и прегледом тема на wordpress.org, неопходно је да имате налог – Пријава. Осим тога, похађањем радионица сте део званичне Вордпрес заједнице и налог на wordpress.org ће вам се свакако показати као више него користан.

Када направите налог на .org, онда сте спремни да се прикључите званичном Вордпресовом Slacku (само пратите ова упутства: make.wordpress.org/chat/ )

Дакле, да бисте били у потпуности спремни за радионице потребно вам је 5 ствари:

  1. Преносни рачунар
  2. Локално развојно окружење са свежом инсталацијом Вордпреса (само инсталација, без додавања садржаја, тема или додатака)
  3. Текст едитор
  4. Налог на wordpress.org
  5. Налог на wordpress.slack.com

Ипак, радионице можете да похађате и ако немате ништа од горе наведеног.

Шта ако немам преносни рачунар?

Нажалост, нисмо у могућности да обезбедимо рачунаре за полазнике. Но то не би требало да вас спречи уколико желите да похађате радионице. Наравно да можете присуствовати радионицама и без рачунара и без налога на wordpress.org и Slack. Можете пратити онолико колико вама одговара а комплетан код ће бити достуан на званичном налогу Вордпрес Србија заједнице на Github-u.

Како ћете примењивати знање стечено у радионицама је апсолутно на вама. Можете постати активан члан глобалне Вордпрес заједнице а можете и само унапредити услуге које нудите својим клијентима. А можете и обоје.

За кога су ове радионице?

Радионице су за оне који желе да науче да сами развијају теме за Вордпрес као и да се укључе у процес прегледа тема (theme review) на make.wordpress.org/themes.

Обзиром да подразумевамо одређено предзнање, могло би се рећи да су радионице за frontend и јуниор PHP девелопере.

За кога нису ове радионице?

Радионице нису за оне који желе да науче како се Вордпрес користи (како се уноси садржај, праве изборници и сл). Такође, нису за оне који желе да науче како да модификују изглед и функционалност Вордпреса употребом купљених тема и/или различитих додатака.

Како се пријавити?

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

Како помоћи?

Обзиром да су радионице у организацији Вордпрес Србија заједнице, све је волонтерског карактера: предавач не добија никакву новчану надокнаду, Стартит уступа простор и опрему без икакве новчане надокнаде.. Увиђате образац.

Радионице (као уосталом и сва друга окупљања) ће бити онолико добро или лоше организоване колико сви ми желимо и потрудимо се да буду.

Видео снимци и пренос уживо

Постоји велико интересовање да радионице буду снимане а, ако је могуће, и преношене уживо. За сада немамо опрему на располагању али бисмо волели да одговоримо овом захтеву. Уколико неко поседује опрему и вољу да нам је уступи (или макар само снимљени материјал), без новчане или било какве друге надокнаде (дакле, као волонтер), то би била огромна помоћ заједници.

Фотографије

Такође, добрих фотографија никад доста. Ако имате добар апарат или камеру на телефону и успете да направите неколико добрих фотки, молимо да их поделите са целом заједницом.

Храна и пиће

Свака радионица ће трајати 3 сата. Верватно ће нам свима бити потребна и понека пауза. Могло би бити корисно када бисмо у тим паузама могли да се освежимо храном и пићем.

Неколико пари руку

Од Стартит центра добијамо простор и опрему. Међутим, намештање столица и столова пре и после радионице је наша одговорност. Било би лепо да неколико полазника дође 15-ак минута раније и помогне предавачу да све припреми.

Спонзори

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

Према правилима Стартит центра, у току радионице можемо само усмено да се захвалимо оваквом спонзору. Дакле, нема рекламних реквизита са графичким или текстуалним приказом бренда спонзора.

Ван радионица, спонзорима ћемо се адекватно захвалити на друштвеним мрежама и објавама на https://sr.wordpress.org/news/ и https://wpserbia.rs/ у оквиру редовних промоција радионица.

Уколико сте заинтересовани да будете спонзор контактирајте нас на community@wpserbia.org.

Кодекс понашања

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

Оригинал: https://make.wordpress.org/community/handbook/meetup-organizer/resources/code-of-conduct/

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

Хвала пуно на интересовању и видимо се у септембру.