Nacházejí se pod oknem, kde se zadává příspěvek – uživatelská pole. Jenomže jsou to jen prázdné kolonky, nějaký další formulář, který nemá na první pohled žádné využití. A taky se bez něho dá žít, což se mi dařilo několik let. Ale nedávno jsem potřeboval udělat něco, co bych mohl zvládnout rychleji než najít plugin, který by to eventuálně řešil.
Shodou okolností jsem přesně v té době takový plugin našel. Je to plugin Serial Posts, který umožňuje vytvořit z několika článků seriál, tedy to, co jsem použil pro americké cestování. Blok s jednotlivými díly se nachází ve sloupci a pod každým článkem, přičemž díl, který čtete, není v seznamu všech dílů jako odkaz a je tedy pěkně vidět. Plugin to řeší právě pomocí uživatelských polí, je to triviální a přivedlo mě to k dalším nápadům.
Jak to funguje
Uživatelské pole tvoří dvojice hodnot: key a value, tedy název proměnné a její hodnota. Plugin Serial posts používá proměnnou Serial a hodnotu si nastaví autor – podle ní vlastně vytvoří seriály.
Pak nastane druhá část, ta podstatnější. Je třeba podle hodnoty pole něco zobrazit. Plugin načítá z databáze články se stejným polem a dělá další složité věci; já uvedu svůj jednodušší případ.
Adresa zdroje
Dejme tomu, že chcete u každého příspěvku zobrazovat zdroj, ze kterého jste čerpali. Vytvoříte si uživpole adresa
a jako hodnotu mu zadáte pokaždé odpovídající URL (u každého článku je jiná).
Pak je potřeba upravit soubory šablony: pro zobrazení článku je to single.php, pro zobrazení stránky page.php. Tam si najděte vhodné místo (např. v záhlaví článku, těsně pod tělem, nebo až za komentáři) a vložte třeba podobný PHP kód. Důležitý je v něm příkaz pro načtení aktuálního uživpole:
<?php $key="adresa"; $vysledek = get_post_meta($post->ID, $key, true); echo '<a href="' . $vysledek . '" title="Zdroj článku">' . $vysledek; echo '</a></p>'; ?>
Neumím programovat, takže se mi smějte velkoryse. Uvedený příkaz zobrazí v podstatě jen adresu, která je klikací a má nějaký title. Pro její zástupný text bychom museli použít další pole, nebo si vše oddělit třeba mezerou v jednom poli a pak to parsovat. To neumím. Místo toho lze třeba taky použít ikonu.
Podstatné je, že používání uživatelských polí je velmi snadné a velmi efektivní. Nemám to ze svě drně – WP Codex: Using Custom Fields.
Také jsem na WordPressu několik let vystačil bez této funkce, nicméně poslední dobou se mi uživatelská pole hodí stále častěji. Navíc jejich použití je velmi elegantní, řekl bych.
Dneska už je všechno dál 🙂 Pole jsou základem pro mnoho návazných funkcí a metod ukládání dat (a já už jsem naštěstí taky někde jinde a tímhle se dnes živím ;-))
Hodně tomu pomohly custom post types, vlastní typy článků, které by bez custom fields neměly opodstatnění.