Přejít na obsah

Nastavení cookies

Zvolte, které druhy cookies povolíte. Svou volbu můžete kdykoli změnit přes Nastavení cookies v dolní části každé stránky. Prohlášení o ochraně osobních údajů

Nezbytné

Vždy zapnuté

Potřebné pro přihlášení, uchování košíku a zapamatování vašich voleb. Jsou vždy zapnuté.

Které cookies?
  • weboke_sessie, weboke_klant, weboke_remember: vaše relace a trvalé přihlášení
  • weboke_basket: váš košík
  • wkBtwIncl: zobrazení cen s DPH nebo bez DPH
  • wok_cookies: vaše volba cookies, 12 měsíců

Měří, která reklama vede k návštěvě nebo objednávce, abychom neplatili za reklamy, které nic nepřinášejí.

Které cookies?
  • Google Ads přes Google Tag Manager (_gcl_au, _gcl_aw), až 90 dní
  • OpenAI Ads, reklamy v ChatGPT
  • wok_aff: partner, který vás k nám doporučil (partnerský program), 60 dní

4,6

Země a jazyk

Každá země má vlastní web s cenami a DPH dané země.

Zobrazit

Pod pokličkou: webový server, PHP a databáze

Modul 1: Jak WordPress funguje · Doba čtení: 8 minut

Cíl lekce: Po této lekci dokážete krok za krokem vysvětlit, jak se z požadavku na stránku ve WordPressu stane HTML stránka, a kde cache tuto cestu zkracuje.

Klíčové pojmy: webový server (LiteSpeed, Apache, nginx), PHP, MariaDB/MySQL, dotaz (query), index.php, hierarchie šablon, dynamický vs statický, TTFB

Statická a dynamická stránka

U statického webu je každá stránka uložena jako hotový soubor na serveru. Webový server soubor vezme a odešle. To je rychlé a jednoduché, ale každá změna znamená nový soubor.

WordPress je dynamický: stránka vzniká až ve chvíli, kdy si ji někdo vyžádá. Neexistuje žádný soubor contact.html. Existuje kus textu v databázi, šablona se vzory stránek a sada PHP kódu, která obojí spojí dohromady. To přináší pohodlí (text upravíte přímo v prohlížeči), ale u každé návštěvy to stojí výpočetní práci. Když tomuto výpočtu porozumíte, pochopíte později i to, proč je web pomalý, proč caching znamená tak velký rozdíl a proč upgrade PHP může něco rozbít.

Cesta požadavku na stránku

Představte si, že návštěvník otevře https://example.com/contact/. Stane se toto:

  1. DNS: prohlížeč vyhledá IP adresu domény example.com (viz kurz DNS). Vytvoří zabezpečené spojení s touto adresou.
  2. Webový server: na serveru běží webový server, například LiteSpeed, Apache nebo nginx. Ten požadavek přijme. Pokud existuje skutečný soubor nebo složka s daným názvem (obrázek, styl), pošle ho rovnou. Pokud ne, platí pravidlo ze souboru .htaccess (u LiteSpeed a Apache) nebo z konfigurace nginx: „vše, co neexistuje, předej souboru index.php“.
  3. PHP: index.php je soubor PHP. Webový server ho nechá spustit pomocí PHP, programovacího jazyka, ve kterém je WordPress napsaný. PHP nejprve načte wp-config.php (nastavení, včetně údajů o databázi), poté zbytek WordPressu, poté všechny aktivní pluginy a aktivní šablonu.
  4. Databáze: WordPress zjišťuje, jaký obsah patří k adrese /contact/, a klade dotazy databázi (MariaDB nebo MySQL): která stránka má slug contact, jaká jsou nastavení webu, k jakému menu patří? Takový dotaz se nazývá query. Jednoduchá stránka snadno vyžádá desítky dotazů, s pluginy jich může být i několik set.
  5. Šablona: WordPress vybírá, který vzor šablony stránku zobrazí. Řídí se přitom hierarchií šablon: pro stránku se slugem contact WordPress nejprve hledá vzor page-contact, poté page-<id> (číslo stránky), poté page, poté singular a nakonec index. Vítězí první, který existuje.
  6. Návrat HTML: výsledkem je HTML stránka, kterou PHP předá webovému serveru, a ten ji odešle prohlížeči.
  7. Prohlížeč přečte HTML a poté ještě stáhne styly, skripty, písma a obrázky. Ty jsou obyčejnými soubory, takže přicházejí přímo z webového serveru (nebo z cache).

Mezi krokem 2 a krokem 6 je čas, který server potřebuje k vytvoření stránky. Projevuje se jako TTFB (time to first byte): čas mezi požadavkem a prvním bajtem odpovědi. U dobře nastaveného webu bývá hluboko pod jednu sekundu. V modulu 6 si to změříte sami.

Proč záleží na každém pluginu

V kroku 3 se všechny aktivní pluginy načítají při každém požadavku. I když daný plugin na této stránce nic nedělá. Plugin pro fotogalerii se tedy načte i tehdy, když někdo otevře Vaši kontaktní stránku. Každý plugin může provádět další dotazy, načítat další kód a přidávat do stránky další skripty.

To vysvětluje dvě věci, se kterými se v tomto kurzu setkáte častěji:

  • Méně pluginů je zpravidla rychlejší. Ne proto, že by záleželo na počtu samotném, ale proto, že každý plugin může při každém požadavku vykonávat práci.
  • Jeden nefunkční plugin dokáže položit celý web. Pokud se v kroku 3 něco pokazí (například plugin, který nefunguje s novou verzí PHP), PHP se ke kroku 6 vůbec nedostane. Návštěvník uvidí bílou stránku nebo hlášku „Na tomto webu došlo ke kritické chybě“ (lekce 5.4).

Odkud pochází PHP a databáze

PHP a databáze běží na serveru Vašeho hostingu. Verzi PHP si obvykle volíte sami v ovládacím panelu (v DirectAdminu se to jmenuje Select PHP version, viz lekce 8.4). Databázi vytváříte při instalaci; instalátor to často udělá za Vás (lekce 2.2).

Několik věcí, které si stojí za to zapamatovat:

  • Verze PHP: každá nová verze PHP je rychlejší a bezpečnější, ale starý kód na ní může přestat fungovat. wordpress.org v současnosti doporučuje PHP 8.3 nebo vyšší (stav listopad 2026).
  • Databáze: wordpress.org doporučuje MariaDB 10.11 nebo vyšší, případně MySQL 8.0 nebo vyšší. MariaDB je odnož MySQL; pro WordPress to nehraje žádnou roli.
  • Databáze bývá většinou na stejném serveru (DB_HOST je pak localhost). U větších instalací hostingu může být na samostatném serveru.

Cache: zkrácení cesty

Pokud sto návštěvníků požádá o stejnou kontaktní stránku, bez cache ji WordPress vytvoří stokrát znovu. Pokaždé stejné dotazy, stejná šablona, stejné HTML. Cache stránek uchová HTML po prvním vytvoření. Další návštěvník dostane uloženou verzi: kroky 3 až 6 odpadají.

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

Proto caching přináší největší zrychlení (lekce 6.2). Vysvětluje to i častý zdroj zmatku: „upravil jsem text, ale pořád vidím starou verzi.“ Tehdy dostáváte uloženou verzi; po vymazání cache uvidíte novou.

Ne všechno smí pocházet z cache. Přihlášený administrátor, nákupní košík nebo stránka s pokladnou vypadají pro každého návštěvníka jinak. Dobrý cachovací plugin tyto případy vynechává.

Hlavičky: co Vám server prozradí

Každá odpověď webového serveru začíná hlavičkami (headers), ještě před samotným HTML. Na stránce je neuvidíte, ale uvidíte je ve vývojářských nástrojích prohlížeče (F12, karta Síť, klikněte na první požadavek). Příklad:

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 říká, který webový server odpovídá.
  • link s wp-json prozrazuje, že jde o WordPress.
  • x-litespeed-cache: hit znamená, že tato stránka pochází z cache LiteSpeed. Jiné cache používají jiné názvy, například x-cache: HIT nebo cf-cache-status: HIT u Cloudflare.

Tyto hlavičky nemusíte znát nazpaměť. Ale kdo je umí číst, dokáže sám najít spoustu problémů.

Shrnutí

  • WordPress vytváří každou stránku v okamžiku požadavku: webový server, PHP, pluginy, databáze, šablona, HTML.
  • Při každém požadavku se načítají všechny aktivní pluginy; jeden nefunkční plugin dokáže zastavit celý web.
  • Hierarchie šablon určuje, který vzor šablony stránku zobrazí.
  • Cache stránek přeskakuje výpočetní práci tím, že vrací uložené HTML. Přihlášení uživatelé a nákupní košíky do této cache nepatří.
  • Hlavičky odpovědi prozrazují, který webový server odpovídá a zda stránka pocházela z cache.

Kvíz

1. Kdo spouští PHP kód WordPressu?



2. Web se 40 pluginy je pomalý i na stránkách, kde tyto pluginy nic viditelného nedělají. Jaké je nejlepší vysvětlení?



3. Odkud obvykle pochází styl, jako je /wp-content/themes/thema/style.css?



4. V hlavičkách vidíte x-litespeed-cache: hit. Co to znamená?



5. Jaký vzor šablony WordPress použije pro stránku se slugem contact, pokud šablona obsahuje jen page a index?



Úkol

Úkol A1.2: Přečtěte si hlavičky svého webu. Otevřete svůj vlastní web (nebo wordpress.org) pomocí vývojářských nástrojů prohlížeče (F12, karta Síť, obnovte stránku, klikněte na první požadavek). Vyplňte, jaký webový server je uveden v hlavičce server (nebo „žádný“, pokud tam chybí), a zda se v odpovědi nachází hlavička, která uvádí, že stránka pochází z cache (jaký má název a jakou hodnotu). Program vyžádá stejnou stránku a porovná výsledek.

Úkol A1.2: Přečtěte si hlavičky svého webu




Co vyplníte a co zjistíme, neukládáme. Váš prohlížeč si pamatuje Vaše odpovědi a to, zda jste úkol splnili. Pokud jste přihlášeni, ukládáme v sekci Moje kurzy pouze to, že jste úkol měli (téměř) správně; i to tam můžete odstranit.

Další čtení

Tyto články popisují jednotlivé kroky v panelech WebOké; v jiných panelech fungují obdobně.

Chvíli strpení…

Nastavení vašich domén

U každé domény nastavte jmenné servery, propojení s hostingem a to, kdo bude držitelem.

Načítání vašich domén…