WordPress obecně

Práce s daty ve WordPressu

WordPress databáze
Autor příspěvku Tomáš Cirkl

Weby postavené na WordPressu se skládají ze tří základních elementů:

  1. Vlastní instalace WordPressu.
  2. Obsah adresáře wp-content, který obsahuje šablony, pluginy a nahrané soubory.
  3. Databáze, která obsahuje data.

Mnoho běžných uživatelů WordPressu nikdy nepřijde do kontaktu s databází a dost možná o ní ani nic neví. Když WordPress zobrazí stránku, ať už domácí stranu, příspěvek nebo stránku, vždy přistupuje k databázi a načítá z ní data, která tam editor nebo administrátor vložil.

V celé této sérii článků se podíváme na různé aspekty WordPress databáze. Celá série bude mít osm částí:

  1. Úvod
  2. Vztahy mezi daty
  3. Typy dat
  4. Uživatelská data
  5. Metadata
  6. Taxonomie, rubriky, štítky a položky
  7. Tabulka Options
  8. WordPress Multisite data

V tomto prvním článku se podíváme na databázové tabulky a na jejich vztahy s různými typy obsahu. Také se podíváme na to, co je kde uloženo.

Typy obsahu u WordPressu

Protože tabulky v databázi uchovávají obsah, musíte nejdříve pochopit co ten obsah je. U WordPressu se můžete setkat s několika typy obsahu:

  • příspěvky
  • stránky
  • vlastní druhy příspěvků
  • přílohy
  • odkazy
  • položky menu (jsou uloženy jako individuální příspěvek)

Tyto typy obsahu mají data spojena s:

  • rubriky
  • štítky
  • vlastní taxonomie a položky
  • metadata příspěvků

Kromě nich existují i ​​další typy obsahu, které jsou uloženy zvlášť. Jedná se o:

  • widgety
  • nastavení
  • uživatele
  • stránky (pouze u multisite)
  • obsah vložený “natvrdo v kódu” (přidán k šabloně nebo pluginu)
  • obsah uložený jinde (feed, stream atd..)

Všechny tyto typy obsahu jsou uloženy někde v databázi (nebo, jak si ukážeme, výjimečně v šabloně nebo pluginu). Může k nim být přistupováno samostatně nebo současně (například streamovaný obsah nakódovaný do příspěvku). Také mohou být propojeny s daty v dalších tabulkách. Například data o příspěvku budou propojena s daty o uživatelích, kteří jsou ve WordPressu označeni jako autoři příspěvku.

Databázová struktura WordPressu

WordPress používá velké množství databázových tabulek. Tyto tabulky mají nastavené relace, díky kterým se snižuje počet skladovaných dat – jedná se o vztah 1:N. To znamená, že jeden uživatel může mít několik příspěvků, u kterých je uveden jako autor. Díky tomuto přístupu se ušetří místo. Kdyby totiž WordPress skladoval všechna uživatelská data zvlášť pro každého uživatele došlo by k tomu, že se bude spousta dat opakovat a nároky na místo budou mnohonásobně větší.

Diagram níže je převzat z WordPress Kodexu a ukazuje databázové tabulky a jejich propojení:

WordPress tabulky v databázi

WordPress tabulky v databázi

Většina tabulek je propojena s dalšími pomocí jednoho pole. Toto pole je unikátní identifikátor pro každý záznam, jako například  post_id.

Podrobněji to najdete popsané v tabulce níže:

TabulkaUložená dataPropojeno s
wp_postsPříspěvky, stránky, přílohy, revize a menuwp_postmeta (via post_id)
wp_term_relationships(via post_id)
wp_postmetaMetadata pro každý příspěvekwp_posts (via post_id)
wp_commentsKomentářewp_posts (via post_id)
wp_commentmetaMetadata pro každý komentářwp_comments (via comment_id)
wp_term_relationshipsVztah mezi příspěvky a taxonomiíwp_posts (via post_id)
wp_term_taxonomy (via term_taxonomy_id)
wp_term_taxonomyTaxonomie (včetně rubrik a štítků)wp_term_relationships (via term_taxonomy_id)
wp_termsVaše rubriky, štítky a položky přiřazené k vlastním taxonomiímwp_term_taxonomy (via term_id)
wp_linksSeznam odkazů (pokud nějaký máte)wp_term_relationships (via link_id)
wp_usersUživateléwp_posts (via post_author)
wp_user_metaMetadata pro každého uživatelewp_users (via user_id)
wp_optionsNastavení stránkyn/a

Několik věcí, které byste měli vědět:

  • Tabulky v databázi mají ve výchozím nastavení prefix wp_. Tento prefix můžete změnit při instalaci WordPressu.
  • Centrální tabulka je wp_posts. V ní je uložena většina vašich dat a (většinou) drží vše pohromadě.
  • Pouze wp_options není spojena s další tabulkou. V této tabulce je uloženo nastavení stránky a WordPress instalace. Ani jedna z věcí není spojena s daty o příspěvcích nebo uživatelích.
  • Tabulky wp_userswp_comments nejsou propojeny. Ačkoliv je možné specifikovat, aby uživatelé museli být před napsáním komentáře registrováni. WordPress totiž neukládá data o každém uživateli, který vložil komentář.
  • WordPress Multisite má některé další tabulky, které si projdeme později.

Propojení obsahu a tabulek v databázi

Podívejte se, jaké typy obsahu WordPressu ukládá která tabulka v databázi.

Druh obsahuTabulky
příspěvkywp_posts
stránkywp_posts
vlastní typy příspěvkůwp_posts
přílohywp_posts
odkazywp_links
menuwp_posts
rubrikywp_terms
štítkywp_terms
vlastní taxonomiewp_term_taxonomy
hierarchiewp_terms
metadata příspěvkůwp_post_meta
widgetywp_options
nastaveníwp_options
uživateléwp_users
"na pevno vložený" obsahwp_posts (pokud je obsaženo v příspěvku)
wp_options (pokud je obsaženo ve widgetu)
Soubory šablony a pluginu (pokud je obsaženo v kódu)
obsah třetích stranwp_posts (pokud je obsaženo v příspěvku)
wp_options (pokud je obsaženo ve widgetu)
Soubory šablony a pluginu (pokud je obsaženo v kódu)

Můžete si všimnout, že zde nejsou obsaženy všechny tabulky. Je to z toho důvodu, protože některé z nich jsou použity k uložení metadat a další obsahují vztahy, které si rozebereme v dalších návazných článcích.

Shrnutí

Doufám, že nyní budete lépe rozumět, jak a kde WordPress ukládá různé typy dat a jakou má databázovou strukturu.

V dalším článku se podíváme na vztahy mezi daty a detailněji se podíváme na to, jak jsou konkrétní tabulky propojeny a jak jsou některé z nich použity pouze k ukládání dat o vztazích mezi nimi.

O autorovi

Tomáš Cirkl

Baví mě Internet a zvláště pak redakční systém WordPress. Jsem pravidelným účastníkem a přednášejícím na WordCamp Praha a WordPress konferencích.

1 komentář

  • Dobrý den, řeším zmenšení DB a našel jsem 2 tabulky, které mají opravdu hodně a nejsem si jist, že tam musí být, konkrétně wp_prli_clicks (310MB) a wp_statpress (230MB). Poradí někdo, k čemu jsou a jak je zmenšit? Celkovou velikost db mám 640MB. Díky

Zanechat komentář

WordPress školení pro začátečníky a mírně pokročilé (Praha 17.9.2020)

Získejte více informací o WordPress!

Připojte se do našeho emailového seznamu a nenechte si ujít informace, novinky a návody ze světa WordPressu.

Úspěšně jste se zapsali do našeho newsletteru. Děkujeme!

Tomáš Cirkl

Tomáš Cirkl

WordPress specialista

Blog WPlama.cz píši už více než 5 let. O WordPress přednáším a pořádám školení. Pro své klienty vytvářím a spravuji webové stránky.