1. Apie WordPress ir jo plėtinius - kada įskiepis, kada - tema?

WordPress - pasaulyje ir Lietuvoje labai populiari turinio valdymo sistema (TVS). Sukurta 2003-aisiais kaip tinklaraščių rašymo platforma, ši sistema pastaraisiais metais dideliais žingsniais tobulėjo ir tapo tinkama naudoti įvairaus tipo tinklalapiams.

Naujausiais duomenimis, daugiau nei 23% pasaulio (Lietuvoje - apie 18.2%) tinklalapių naudoja būtent šią turinio valdymo sistemą. WordPress naudotojų sąraše: stambios naujienų organizacijos (New York Times, CNN), Fortune 500 kompanijos (Coca Cola, Xerox, UPS), mokslo institucijos (Georgia State University) ir kt. Lietuvoje šią TVS naudoja VDU, Kauno kolegija, Pinigų karta, IQ.lt, blogas.lt ir kt.

Viena šio populiarumo priežasčių - labai gyvybinga plėtinių ekosistema. Standartinė WordPress versija turi ne itin didelį funkcijų rinkinį, tačiau jos galimybės nesunkiai išplečiamos naudojant įskiepius (plugins) ir išvaizdos temas (themes). Ši TVS turi gerai išvystytą ir lengvai naudojamą plėtinių diegimo sistemą - daugelį jų naudotojai gali parsisiųsti ir įsidiegti vos keliais pelės paspaudimais tiesiai iš administravimo skydo (wp-admin).

Kaip minėjau, WordPress turi dvi atskiras plėtinių rūšis - išvaizdos temas bei įskiepius:

  • Išvaizdos temos skirtos pakeisti lankytojų matomą tinklalapio dalį, taigi - svetainės išvaizdą.
  • Įskiepiai modifikuoja pačios sistemos veikimą ir, priklausomai nuo paskirties, jų poveikio rezultatas gali būti matomas tiek lankytojams, tiek administravimo skyde.

Norint pilnai pritaikyti WordPress savo poreikiams dažniausiai yra naudojama išvaizdos temos ir įvairių įskiepių kombinacija. Kai kurios išvaizdos temos taip priklauso nuo papildomų įskiepių, kad be jų tiesiog neveikia.

Kartais sunku atrasti ribą, kada kuriamas funkcionalumas turi priklausyti išvaizdos temai, o kada - įskiepiui. Ypač, kai projektui jau kuriate specialią išvaizdos temą - tuomet kyla tikrai didelė pagunda papildomo funkcionalumo kodą tiesiog sudėti į išvaizdos temos functions.php failą ir tiek.

Labai apibendrinta taisyklė būtų tokia - jeigu pakeitimas yra susijęs su atvaizdavimu, tai turėtų būti išvaizdos temos dalis, jeigu sukuria naują funkcionalumą - įskiepis. Akivaizdu, kad tokia taisyklė mažai naudinga tais ribiniais atvejais, kai pakeitimas keičia tiek atvaizdavimą, tiek funkcionalumą. O dažniausiai būtent taip ir yra. Tuomet aš laikausi tokio principo - jeigu kažkuri kodo dalis gali būti išskirta kaip modulis ir panaudota kituose tinklalapiuose, tai turėtų būti įskiepis. Paprastai galiausiai nutinka taip, kad dalis kodo (pagrindinė logika, valdymo skydo integracijos, nustatymų puslapiai ir pan) patenka į įskiepį, o kita dalis (atvaizdavimo dalykai) lieka išvaizdos temoje.

Žiūrint labai plačiai, būtų galima teigti, kad WordPress struktūroje pagal MVC architektūrą išvaizdos temos atlieka views vaidmenį, įskiepiai - models, o WordPress šerdis elgiasi kaip controler.

MVC (Model / Views / Controller) yra programavimo architektūros filosofija, naudojama daugelyje įvairių programavimo kalbų. Ji padeda formuoti lengvai suprantamą ir aiškią kodo struktūrą.

  • Models - pagrindinė programos logika - duomenų apdorojimas ir saugojimas, skaičiavimai, funkcijos.
  • Views - atvaizdavimo šablonai - HTML - ir paprasta atvaizdavimo logika (sąlygos ir ciklai).
  • Controllers - tarsi dispečeris - apdoroja URL užklausą, iškviečia reikalingus modelius ir jų rezultatus perduoda atitinkamiems šablonams.

WordPress griežtai nesivadovauja MVC filosofija, todėl išvaizdos temos dažnai peržengia views ribas, šerdis (WordPress core) atlieka gerokai daugiau nei vien controller funkcijas, o įskiepiai kartais imasi ir visų trijų vaidmenų. Tačiau žvelgiant per MVC prizmę lengviau nuspręsti, kur turėtų keliauti naujas kodas - į išvaizdos temą ar įskiepį.

WordPress šerdis

Pasirenkant tarp įskiepio ir temos programuotojas turi labai daug laisvės - daugelis kodo elementų veikia tiek ten, tiek ten - ir pasirinkimas yra daugiau filosofinis, architektūrinis klausimas. Yra tik viena griežta taisyklė - niekada kuriant projektą nemodifikuoti WordPress šerdies.

Priežastis yra labai paprasta - atnaujinimai. WordPress turi puikią (pusiau) automatinių atnaujinimų sistemą. Pradedant nuo 3.7 versijos, mažieji šerdies versijų atnaujinimai (pvz iš 3.9.0 į 3.9.1 arba iš 3.9.1 į 3.9.2) atliekami automatiškai - išėjus naujai versijai sistema pati parsiunčia ir įrašo atnaujintus failus. Stambių versijų, įskiepių ir išvaizdos temų atnaujinimams administratorius vis dar turi paspausti mygtuką "Update" valdymo skyde, bet toliau WordPress sistema irgi viską atlieka pati.

Tokių atnaujinimų metu visi jūsų pakeitimai šerdyje automatiškai pranyks, ir juos teks atlikti per naują. Naujos stambios WordPress versijos šiuo metu išeina maždaug kas 4 mėn, smulkiosios - dar dažniau, taigi pakeitimus reikėtų atstatinėti nuolat.

Žinoma, automatinius atnaujinimus galima išjungti, ir palikti WordPress neatnaujintą. Tačiau tokiu būdu paliekate save atvirą saugumo spragoms - WordPress yra labai populiari turinio valdymo sistema ir todėl yra nuolat atakuojama programišių. Neatnaujindami sistemos paliekate ją atvirą įsilaužimams. Nepaisant nuolatinių atakų, WordPress yra gana saugi sistema, visos naujai atrastos spragos yra operatyviai ištaisomos, todėl dauguma sėkmingų atakų pasinaudoja būtent pasenusių versijų spragomis.

Oficialiame WordPress kataloge jau yra daugiau nei 33,5 tūkst. įskiepių. Taigi, prireikus kažkokios funkcijos yra didelė tikimybė, kad tai darantis įskiepis jau yra sukurtas. O jeigu nėra, arba esamus įskiepius sudėtinga pritaikyti prie jūsų kuriamos svetainės dizaino/struktūros, tenka atsiraityti rankoves ir sukurti savo.

Jei WordPress įskiepių kataloge ieškotumėte frazės "Related posts", gautume daugiau nei 1000 rezultatų, vadinasi turime didelį pasirinkimą jau esamų įskiepių, kuriuos galime tiesiog imti ir naudoti. Tai kodėl kuriame naują? Trumpas atsakymas - šiam kursui reikėjo pavyzdžio ;) Kalbant rimtai, nors įskiepių pasirinkimas yra didelis, jiems trūksta paprastumo. Įskiepių autoriai, norėdami įtikti kuo didesniam vartotojų skaičiui dažnokai persistengia bandydami padaryti juos kuo universalesnius ir kupinus įvairiausių savybių.

Deja, tas kas tinka viskam, dažnai netinka niekam. Arba tenka įdėti daug darbo bandant pritaikyti tokį įskiepį savo reikmėms. Kuriant tinyRelated pagrindinis tikslas yra sukurti paprastą, lengvai išplečiamą ir pritaikomą prie svetainės poreikių ir išvaizdos įrankį.

 

Pamokos testas

Dėmesio - SVARBU: testą galima spręsti tik VIENĄ KARTĄ, vėliau pažymio ištaisyti nebus įmanoma.

1. Kiek procentų pasaulio tinklalapių naudoja WordPress turinio valdymo sistemą?
~30%
~10%
~40%
~20%

2. Kuris iš šių tinklalapių naudoja WordPress?
pinigukarta.lt
verslozinios.lt
ekonomika.lt
verslosavaite.lt

3. Kuris iš šių teiginių teisingas?
WordPress turi dvi plėtinių rūšis - išvaizdos temas ir įskiepius
Standartinė WordPress versija turi labai daug funkcijų
WordPress turi menką jau sukurtų plėtinių pasirinkimą
WordPress plėtinius yra labai sudėtinga įdiegti

4. Kuri WordPress plėtinių rūšis yra skirta naujoms sistemos funkcijoms pridėti?
Įskiepiai
Išvaizdos temos

5. WordPress griežtai laikosi MVC architektūros
Taip
Ne

6. WordPress šerdies (core) modifikavimas nesutrukdys paprastai diegti atnaujinimus.
Ne
Taip

7. Kaip veikia WordPress šerdies (core) atnaujinimų sistema?
Visada reikia paspausti „Update“ mygtuką valdymo skyde
Smulkūs atnaujinimai (3.9.0 -> 3.9.1) įdiegiami automatiškai
Visada reikia naujus failus įkelti per FTP
Visi atnaujinimai įdiegiami automatiškai

8. Kaip veikia WordPress įskiepių ir išvaizdos temų atnaujinimų sistema?
Smulkūs atnaujinimai (3.9.0 -> 3.9.1) įdiegiami automatiškai
Visi atnaujinimai įdiegiami automatiškai
Visada reikia paspausti „Update“ mygtuką valdymo skyde
Visada reikia naujus failus įkelti per FTP

9. Kiek įskiepių šiuo metu yra oficialiame WordPress įskiepių kataloge
>300000
>3000
>300
>30000

10. Kokiomis savybėmis pasižymės tinyRelated įskiepis?
Turės labai gausų funkcijų ir nustatymų pasirinkimą
Bus lengvai modifikuojamas ir pritaikomas konkrečiam tinklalapiui