Prozatím jsme se v sérii zaměřili na typy obsahu ve WordPressu. Ale co další data u obsahu?
Těmto datům říkáme metadata.
Tento článek je součástí série osmi částí:
- Úvod
- Vztahy mezi daty
- Typy dat
- Uživatelská data
- Metadata
- Taxonomie, rubriky, štítky a položky
- Tabulka Options
- WordPress Multisite data
Jak jsme si již řekli v předchozích článcích, WordPress má čtyři typy obsahu, které jsou uloženy ve čtyrech tabulkách databáze:
- příspěvky (posts)
- uživatelé (users)
- komentáře (comments)
- odkazy (links)
První tři mohou mít k sobě přiřazené dodatečná metadata. Metadata se ukládají do vlastních tabulek v databázi.
Co jsou to metadata?
Metadata jsou vlastně data o datech. Wikipedie popisuje metadata takto:
Metadata jsou strukturovaná data o datech. Příkladem je katalogizační lístek v knihovně, obsahující data o původu a umístění knihy: jsou to data o datech v knize, uložená na katalogizačním lístku. Metadata mohou sloužit např. k snadnému vyhledávání knih.
Definovat rozdíl mezi daty a metadaty u WordPressu je poměrně těžké. Ani rozdělení pomocí uložení v databázi nepomůže. Například:
- U příspěvků je post_type příklad metadat, ale je uložen v tabulce wp_posts.
- Taxonomie, rubriky a štítky by se mohli považovat za metadata, ale uloženy jsou odděleně ve vlastní tabulce.
- Metadata příspěvků, jako například uživatelská pole a dodatečná metadata přidaná pluginy, jsou uložena v tabulce wp_postmeta, tedy tam kde je očekáváte.
Takže je jednoduší přemýšlet nad metadaty WordPressu ne z přísného pohledu definice, ale z informace, že metadata jsou uložena ve třech tabulkách.
Tabulky s metadaty
WordPress využívá tři tabulky pro ukládání metadat:
- wp_postmeta obsahuje metadata o příspěvcích (včetně příloh, položek menu a revizí)
- wp_commentmeta obsahuje metadata o komentářích
- wp_usermeta obsahuje metadata o uživatelích
Pouze odkazy nemají tabulku pro metadata.
Tabulky metadat jsou všechny takřka identické a mají pouze čtyři pole:
- ID je unikátní identifikátor příspěvku, uživatele nebo komentáře, ke kterému metadata patří
- Meta ID je unikátní identifikátor záznamu
- Key je meta klíč (který je často duplicitně obsažen mezi různými záznamy)
- Value je meta hodnota (která bývá jedinečná)
WordPress může použít tuto strukturu k uložení velkého množství metadat. To znamená, že funkce, které použijete k zobrazení a dotazu metadat u příspěvků, uživatelů a komentářů jsou velmi podobné.
Metadata uložená WordPressem
Metadata uložená individuální instalací WordPressu se odlišují od jiné instalace, je to dáno především tím, že pluginy a šablony si mohou vytvářet svá vlastní metadata, a protože některé stránky potřebují mít definované specifická metadata, kdežto jiné ne.
Podívejme se na některé běžnější typy metadat:
- Uživatelská pole – vztahují se k příspěvkům, a proto jsou uložena v tabulce wp_postmeta. Můžete je použít pomocí boxu Uživatelská pole, který naleznete na stránce, kde upravujte příspěvek. Tento způsob se může hodit, když chcete, aby uživatelé byly schopni přidat metadata ke specifickým příspěvkům.
- Uživatelská metadata – v tabulce wp_usermeta jsou uložena metadata o většině uživatelích, jejich rolích, schopnostech, nastavení administrace a dokonce jméně a příjmení.
- Metadata přidané pluginy a šablonami – pluginy s funkcí pro komentáře (například Akismet) přidají metadata do tabulky wp_commentmeta, zatímco pluginy, které přidávají metadata k příspěvkům (například SEO pluginy), přidají záznamy do tabulky wp_postmeta. Teoreticky byste mohli přidat metadata pomocí šablony, nicméně více dává smysl k tomu využít pluginy, protože to více souvisí k funkcionalitě než ke vzhledu.
Samozřejmě nejste omezeni pouze na tyto typy. Ve skutečnosti, jakékoliv data o příspěvcích, komentářích nebo uživatelích, která nemohou být uložena v jejich hlavní databázové tabulce jsou uložena v příbuzné tabulce metadat.
Pokud přidáváte nové pole pro ukládání dat, měli byste vždy využít těchto tabulek namísto těch hlavních.
Přístup a výstup metadat
WordPress má Metadata API, které využíváte pro přidání, změnu nebo mazání metadat. Je zde velké množství funkcí specifických pro každý typ metadat. Funkce můžete využít pro výstup metadat ve vaší šabloně. Měli byste využít tyto namísto jiných obecných funkcí metadat.
Funkce pro Metadata API jsou pro každý typ obsahu velmi podobné a má stejné parametry:
Přidání metadat | Získání metadat | Aktualizace metadat | Smazání metadat | |
---|---|---|---|---|
Příspěvky | add_post_meta() | get_post_meta() | update_post_meta() | delete_post_meta() |
Uživatelé | add_user_meta() | get_user_meta() | update_user_meta() | delete_user_meta() |
Komentáře | add_comment_meta() | get_comment_meta() | update_comment_meta() | delete_comment_meta() |
Parametry | $post_id, $meta_key, $meta_value, $unique (volitelné) | $post_id, $meta_key, $single (volitelné) | $post_id, $meta_key, $meta_value, $prev_value (volitelné) | $post_id, $meta_key, $meta_value (volitelné) |
Tyto funkce by měli být použity ve vaší šabloně a pluginách. Například v šabloně příspěvku (posts.php) můžete použít následující výstup metadat:
Toto je jeden velmi jednoduchý způsob jak získat výstup z metadat. Je zde mnoho dalších způsobů, z nichž některé si ukážeme později v dalším článku série.
Shrnutí
WordPress používá tři tabulky metadat pro ukládání dat o třech typech obsahu: příspěvcích, uživatelích a komentářích. Tyto tabulky jsou použity pro všechno ostatní, co by se nemělo ukládat do hlavních tabulek wp_posts, wp users a wp comments. Do tabulek určených pro metadata byste měli přidávat nové pole, které vytváříte za pomocí šablon nebo pluginů. Všechny tři tabulky metadat fungují skoro identicky a mají velmi podobné funkce pomocí níž přidáváte, aktualizujete, mažete nebo získáváte metadata.