WordPress obecně

Taxonomie ve WordPressu

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

Taxonomie je to, co povznáší WordPress nad úroveň běžného blogovacího nástroje a řadí ho mezi redakční systémy.

Ale jak se ukládá v databázi?

Taxonomie a položky jsou skvělé vlastnosti WordPressu, které vašim stránkám přidávají větší flexibilitu. Týkají se dvou typů obsahu: příspěvků a odkazů. V databázové struktuře je mezi nimi vztah 1:n. Jeden příspěvek může být propojen s několika položkami v několika taxonomiích a jedna položka může být přiřazena k několika příspěvkům nebo odkazům.

V této sérii článků se zabýváme různými 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

Začněme definicí, protože pojem taxonomie a položka může být ve spojením velmi matoucí.

Definice

Taxonomie

Taxonomie je systém kategorizace a třídění věcí, obvykle hierarchicky. Nejznámější taxonomií je ta, kterou vytvořil Carl Linné a slouží ke třídění živých organismů.

Ve WordPressu slouží taxonomie pro klasifikování vašich dat a jejich seskupení do skupin a podskupin.

WordPress obsahuje tři zabudované taxonomie:

  • rubriky
  • štítky
  • rubriky odkazů

Rubriky a štítky jsou podobné příspěvkům a stránkám. Jedná se o stejný typ obsahu (taxonomie), ale ve výchozím nastavení se chovají rozdílně v tom, že rubriky mají hierarchickou strukturu a štítky ne.

Taxonomie u rubrik odkazů pracuje podobně jako štítky a může být teoreticky použita pro jakýkoliv typ objektu, nicméně ve výchozím nastavení se nezobrazuje a musí být nejprve aktivována.

Pomocí vlastních taxonomií můžete do WordPressu můžete přidat tolik dalších taxonomií, kolik jen chcete. Jejich chování poté bude podobné rubrikám a štítkům. Vlastní taxonomie budou mít položky. Všechny vaše taxonomie budou mít stejný status, jako ostatní zabudované taxonomie. Je to podobné, jako když vytváříte vlastní typy příspěvků.

Položky

Každá taxonomie má položky, aby se daly třídit data. Rubrika je pouze položka v taxonomii rubrik a štítek je pouze položka v taxonomii štítků. Když vytvoříte vlastní taxonomie, musíte poté pro ni vytvořit položky. To můžete udělat přes WordPress administraci nebo použitím funkce wp_insert_term().

Položky mohou být skvělé v kombinaci s vlastními dotazy. Například s nimi můžete vytvářet vlastní šablony, kde budete zobrazovat příspěvky s několika položkami, které se dají podle nich třídit.

Jak WordPress ukládá taxonomie a položky

Jak jsme si již řekli v předchozích dílech seriálu, WordPress používá vztah m:n. Tento vztah je vytvořen za použití tří tabulek:

  • wp_term_relationships
  • wp_term_taxonomy
  • wp_terms

Tyto tabulky jsou společně s propojenými tabulkami wp_post wp_links zobrazeny níže:

taxonomie a položky v databázi

taxonomie a položky v databázi

Pojďme se podívat na to, jak každá tabulka funguje.

Tabulka wp_terms

Tabulka wp_terms ukládá všechny jednotlivé položky pro rubriky, štítky, rubriky odkazů a vlastní taxonomie. Má čtyři pole:

  • term_id je unikátní identifikátor
  • name (jméno)
  • slug
  • term_group je pole, které WordPress v současné době nevyužívá a tak jej můžete klidně ignorovat

Tabulka wp_term_taxonomy ukládá další data o položkách a taxonomiích. Má šest polí:

  • term_taxonomy_id je unikátní identifikátor
  • term_id představuje unikátní identifikátor položky (z tabulky wp_terms), která je propojena s tímto záznamem
  • taxonomy je jméno taxonomie, kam položka spadá
  • description (popis)
  • parent odkazuje na nadřazenou položku, pokud má taxonomie hierarchickou strukturu a existuje nadřazená položka
  • count počet příspěvků v položce

Ve spoustě WordPress instalací bude jeden záznam v tabulce wp_term_taxonomy pro stejnou položku v tabulce wp_terms, ale může se stát, že zde budete mít více než jen jeden záznam pro každou položku. To se může stát v případě, že vytvoříte dvě položky se stejným jménem, ale rozdílným slugem.

To znamená, že vztah mezi těmito tabulkami je 1:n. Jeden záznam v tabulce wp_term může být propojen s několika záznamy v tabulce wp_term_taxonomy, ale každý záznam v tabulce wp_term_taxonomy je propojen pouze s jedním záznamem v tabulce wp_terms.

Tabulka wp_term_relationships

Tabulka wp_term_relationships je nezbytná pro tvorbu vztahu m:n mezi objekty a položkami. Má pouze tři pole:

  • object_id je propojen s post_id v tabulce wp_posts nebo link_id v tabulce wp_links
  • term_taxonomy_id je propojen se stejným polem v tabulce wp_term_taxonomy
  • term_order je pořadí, ve kterám byla položka přiřazena k objektu. Toto se používá pouze, pokud specifikujete řadící argument, když registrujete taxonomie. Ve výchozím nastavení je tato funkce vypnutá a pole má hodnotu 0.

Protože každý objekt a položka může souviset s několika záznamy v tublce wp_term_relationships, je zde vytvořen vztah m:n.

Shrnutí

Vztah mezi objekty (například příspěvky a odkazy) a položkami je unikátní, a nejen protože je to jediný m:n vztah ve WordPressu.

Pochopením, jak tento vztah funguje a kde jsou data uložena, vám pomůže pochopit, jak taxonomie a položky pracují a jak správně použít funkce, které s nimi souvisí.

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.

Zanechat komentář

Školení Divi šablona pro začátečníky a mírně pokročilé (Praha 20.6.2018)

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ž 3 roky. O WordPress přednáším a pořádám školení. Pro své klienty vytvářím a spravuji webové stránky.