Prijeđite na sadržaj

Postavke kolačića

Za svaku vrstu odaberite koje kolačiće dopuštate. Svoj odabir uvijek možete promijeniti putem poveznice Postavke kolačića na dnu svake stranice. Izjava o privatnosti

Nužni

Uvijek uključeni

Potrebni za prijavu, čuvanje košarice i pamćenje Vaših odabira. Uvijek su uključeni.

Koji kolačići?
  • weboke_sessie, weboke_klant, weboke_remember: Vaša sesija i to da ostanete prijavljeni
  • weboke_basket: Vaša košarica
  • wkBtwIncl: prikaz cijena s PDV-om ili bez njega
  • wok_cookies: Vaš odabir kolačića, 12 mjeseci

Mjeri koji oglas dovodi do posjeta ili narudžbe, kako ne bismo plaćali oglase koji ništa ne donose.

Koji kolačići?
  • Google Ads putem Google Tag Managera (_gcl_au, _gcl_aw), do 90 dana
  • OpenAI Ads, oglasi u ChatGPT-u
  • wok_aff: preko kojeg ste partnera došli k nama (partnerski program), 60 dana

4,6

Država i jezik

Svaka država ima vlastitu stranicu, s cijenama i PDV-om te države.

Pogledajte

Ispod haube: web poslužitelj, PHP i baza podataka

Modul 1: Kako WordPress funkcionira · Vrijeme čitanja: 8 minuta

Cilj učenja: Nakon ove lekcije moći ćete korak po korak objasniti kako zahtjev za stranicom u WordPressu postaje HTML stranica i gdje predmemorija (cache) skraćuje taj put.

Ključni pojmovi: web poslužitelj (LiteSpeed, Apache, nginx), PHP, MariaDB/MySQL, upit (query), index.php, hijerarhija predložaka, dinamičko naspram statičkog, TTFB

Statička i dinamička stranica

Kod statičke web-stranice svaka stranica postoji kao gotova datoteka na poslužitelju. Web poslužitelj dohvati datoteku i pošalje je. To je brzo i jednostavno, ali svaka izmjena znači novu datoteku.

WordPress je dinamičan: stranica nastaje tek u trenutku kad je netko zatraži. Ne postoji datoteka contact.html. Postoji dio teksta u bazi podataka, tema s predlošcima i skup PHP koda koji to dvoje spaja. To donosi praktičnost (tekst prilagođavate u pregledniku), ali svaki posjet zahtijeva računanje. Razumijete li to računanje, kasnije ćete razumjeti i zašto je web-stranica spora, zašto predmemorija (caching) toliko pomaže i zašto PHP nadogradnja ponekad nešto može pokvariti.

Put zahtjeva za stranicom

Recimo da posjetitelj otvori https://example.com/contact/. Tada se događa sljedeće:

  1. DNS: preglednik traži IP adresu za example.com (pogledajte tečaj o DNS-u). Zatim uspostavlja sigurnu vezu s tom adresom.
  2. Web poslužitelj: na poslužitelju radi web poslužitelj, primjerice LiteSpeed, Apache ili nginx. On prima zahtjev. Ako postoji stvarna datoteka ili mapa s tim nazivom (slika, stylesheet), poslužitelj je odmah šalje. Ako ne postoji, vrijedi pravilo iz .htaccess (kod LiteSpeeda i Apachea) ili iz konfiguracije nginxa: "sve što ne postoji proslijedi datoteci index.php".
  3. PHP: index.php je PHP datoteka. Web poslužitelj prepušta njezino izvršavanje PHP-u, programskom jeziku u kojem je WordPress napisan. PHP prvo učitava wp-config.php (postavke, uključujući podatke o bazi podataka), zatim ostatak WordPressa, zatim sve aktivne dodatke (plugin) i aktivnu temu.
  4. Baza podataka: WordPress provjerava koji sadržaj pripada adresi /contact/ i postavlja pitanja bazi podataka (MariaDB ili MySQL): koja stranica ima slug contact, koje su postavke web-stranice, koji joj izbornik pripada? Takvo pitanje naziva se upit (query). Već jednostavna stranica brzo zahtijeva desetke upita; s dodacima ih može biti i stotine.
  5. Tema: WordPress odabire koji predložak teme oblikuje stranicu. To se događa prema hijerarhiji predložaka: za stranicu sa slugom contact WordPress prvo traži predložak page-contact, zatim page-<id> (broj stranice), zatim page, zatim singular i na kraju index. Pobjeđuje prvi koji postoji.
  6. HTML natrag: rezultat je HTML stranica koju PHP predaje web poslužitelju, a web poslužitelj pregledniku.
  7. Preglednik čita HTML i zatim dohvaća i stylesheetove, skripte, fontove i slike. To su obične datoteke, pa one dolaze izravno s web poslužitelja (ili iz predmemorije).

Između koraka 2 i koraka 6 nalazi se vrijeme koje je poslužitelju potrebno da izradi stranicu. To se mjeri kao TTFB (time to first byte): vrijeme između zahtjeva i prvog bajta odgovora. Kod dobro postavljene web-stranice to je znatno ispod jedne sekunde. U modulu 6 to ćete izmjeriti sami.

Zašto je svaki dodatak bitan

U koraku 3 učitavaju se svi aktivni dodaci, kod svakog zahtjeva. Čak i ako taj dodatak na toj stranici ništa ne čini. Dodatak za foto-galeriju tako se učitava i kad netko otvori Vašu kontakt stranicu. Svaki dodatak može izvršiti dodatne upite, učitati dodatni kod i dodati skripte na stranicu.

Time se objašnjavaju dvije stvari koje ćete u ovom tečaju često susretati:

  • Manje dodataka obično je brže. Ne zato što je sam broj presudan, nego zato što svaki dodatak kod svakog zahtjeva može obavljati posao.
  • Jedan neispravan dodatak može srušiti cijelu web-stranicu. Ako u koraku 3 nešto pođe po zlu (primjerice dodatak koji ne radi s novom inačicom PHP-a), PHP nikad ne dođe do koraka 6. Posjetitelj dobiva praznu bijelu stranicu ili poruku "Došlo je do kritične pogreške na ovoj web-stranici" (lekcija 5.4).

Odakle dolaze PHP i baza podataka

PHP i baza podataka rade na poslužitelju Vašeg hostera. Inačicu PHP-a obično sami birate u kontrolnoj ploči (kod DirectAdmina to se zove Select PHP version, pogledajte lekciju 8.4). Bazu podataka izrađujete prilikom instalacije; instalacijski program to često učini umjesto Vas (lekcija 2.2).

Nekoliko stvari koje vrijedi zapamtiti:

  • Inačica PHP-a: svaka nova inačica PHP-a brža je i sigurnija, ali stariji kod može na njoj zapeti. wordpress.org trenutno preporučuje PHP 8.3 ili noviji (stanje studeni 2026).
  • Baza podataka: wordpress.org preporučuje MariaDB 10.11 ili noviji, ili MySQL 8.0 ili noviji. MariaDB je ogranak MySQL-a; za WordPress nema razlike.
  • Baza podataka obično se nalazi na istom poslužitelju (DB_HOST je tada localhost). Kod većih hosting paketa može se nalaziti na zasebnom poslužitelju.

Predmemorija: skraćivanje puta

Ako sto posjetitelja zatraži istu kontakt stranicu, WordPress bi je bez predmemorije izradio sto puta iznova. Svaki put isti upiti, isti predložak, isti HTML. Predmemorija stranica (page cache) sprema HTML nakon prvog puta. Sljedeći posjetitelj dobiva spremljenu verziju: koraci 3 do 6 otpadaju.

Zonder cache:  browser > webserver > PHP > WordPress + plugins > database > thema > HTML
Met cache:     browser > webserver > opgeslagen HTML

Zato predmemorija donosi najveći dobitak u brzini (lekcija 6.2). Time se objašnjava i česta zabuna: "promijenio sam tekst, ali vidim staru verziju." Tada dobivate spremljenu verziju; nakon pražnjenja predmemorije vidite novu.

Ne smije sve dolaziti iz predmemorije. Prijavljeni administrator, košarica za kupovinu ili stranica za plaćanje za svakog su posjetitelja drukčiji. Dobar dodatak za predmemoriju te stranice preskače.

Zaglavlja: što Vam poslužitelj govori

Svaki odgovor web poslužitelja počinje zaglavljima (headers), prije HTML-a. Njih ne vidite na stranici, ali vidite ih u razvojnim alatima Vašeg preglednika (F12, kartica Mreža, osvježite stranicu, kliknite na prvi zahtjev). Primjer:

HTTP/2 200
server: LiteSpeed
content-type: text/html; charset=UTF-8
link: <https://example.com/wp-json/>; rel="https://api.w.org/"
x-litespeed-cache: hit
  • server govori koji web poslužitelj odgovara.
  • link s wp-json otkriva da se radi o WordPressu.
  • x-litespeed-cache: hit znači da je ova stranica došla iz LiteSpeed predmemorije. Druge predmemorije koriste druge nazive, poput x-cache: HIT ili cf-cache-status: HIT kod Cloudflarea.

Ne morate ova zaglavlja znati napamet. No tko ih zna čitati, može sam pronaći mnoge probleme.

Sažetak

  • WordPress izrađuje svaku stranicu u trenutku zahtjeva: web poslužitelj, PHP, dodaci, baza podataka, tema, HTML.
  • Kod svakog zahtjeva učitavaju se svi aktivni dodaci; jedan neispravan dodatak može zaustaviti cijelu web-stranicu.
  • Hijerarhija predložaka određuje koji predložak teme oblikuje stranicu.
  • Predmemorija stranica preskače računanje tako što vraća spremljeni HTML. Prijavljeni korisnici i košarice za kupovinu ne pripadaju u tu predmemoriju.
  • Zaglavlja odgovora govore koji web poslužitelj odgovara i je li stranica došla iz predmemorije.

Kviz

1. Tko izvršava PHP kod WordPressa?



2. Web-stranica s 40 dodataka spora je, čak i na stranicama gdje ti dodaci ne čine ništa vidljivo. Koje je najbolje objašnjenje?



3. Odakle obično dolazi stylesheet poput /wp-content/themes/thema/style.css?



4. U zaglavljima vidite x-litespeed-cache: hit. Što to znači?



5. Koji predložak WordPress koristi za stranicu sa slugom contact ako tema ima samo page i index?



Zadatak

Zadatak A1.2: Pročitajte zaglavlja Vaše web-stranice. Otvorite svoju web-stranicu (ili wordpress.org) pomoću razvojnih alata Vašeg preglednika (F12, kartica Mreža, osvježite stranicu, kliknite na prvi zahtjev). Upišite koji web poslužitelj stoji u zaglavlju server (ili "nijedan" ako ga nema) te postoji li zaglavlje koje govori da je stranica došla iz predmemorije (koji naziv i koja vrijednost). Program zatim dohvaća istu stranicu i uspoređuje rezultat.

Zadatak A1.2: Pročitajte zaglavlja Vaše web-stranice




Ono što unesete i što pronađemo ne spremamo. Vaš preglednik pamti Vaše odgovore i je li zadatak položen. Ako ste prijavljeni, u Moji tečajevi čuvamo samo podatak da ste zadatak (gotovo) uspješno riješili; ondje to možete i izbrisati.

Dodatno čitanje

Ovi članci opisuju korake u kontrolnim pločama WebOké-a; u drugim kontrolnim pločama rade na sličan način.

Trenutak…

Postavite svoje domene

Za svaku domenu odredite nameservere, povezivanje s hostingom i tko postaje vlasnik.

Učitavanje Vaših domena…