Metaboxy – 1. Díl – Vytvoření / Implementace

05.03.2015 | Tomáš Kocifaj

Pokud si někdo není jistý, co to metabox je, rádi bychom udělali malou rekapitulaci. Metabox je ve WordPressu blok, který patří nějaké stránce v rámci administrace. Často je napojen na funkční entitu – například na příspěvek. S metaboxy určitě pracoval každý, kdo s WordPressem kdy pracoval. Jsou to ony „boxy“, do kterých vyplňujete data, vybírat rubriku, zadáváte štítky nebo vybíráte náhledový obrázek. To všechno jsou jednotlivé metaboxy. V dnešním tutoriálu si ukážeme, jak lehce a snadno s nimi můžeme pracovat v rámci frameworku.

Hlavní objekt pro práci s Metaboxy

Komponentu, kterou budeme pro tuto práci hlavně využívat bude KT Metabox. Tato komponenta nám umožňuje velké možností automatických procesů, které lze využít. Obecně framework dělí metaboxy do několika skupin.

  1. POST_META – jedná se o metabox, který je „připojen“ k nějakému post typu – například příspěvek, stránka nebo Váš vlastní. Data jsou ukládána obvykle do tabulky wp_postmeta.
  2. OPTIONS – Tyto metaboxy framework využívá pro vlastní stránky v administraci. Jeho data z metaboxů jsou pak často ukládána do tabulky wp_options.
  3. CUSTOM – Také často řečeno – bez určení typu – je na Vás, jak Metabox zpracujete – sám o sobě nedělá nic.
  4. CRUD – Používá se pro vlastní entity, které jsou napojeny na vlastní tabulky v databázi, které si sami vytvoříte.

V tutoriálu si postupně projdeme všechny typy – včetně toho, jak s nimi snadno a efektivně pracovat. V dnešním díle se podíváme na nejčastěji používaný POST_META

Metabox pro objekty typu – post_type

Metaboxy obecně zapisujeme do:
/yours/requires/metaboxes/kt_fw_{post_type}_metabox.inc.php
post_type nahradíme typem post_typu, ke kterému metaboxy budou patřit.

Základní vzhled příspěvku po instalaci WordPressu

 

Definice fieldsetu pro metabox

Proto, abychom mohli využít datový typ POST_META – je potřeba mít připravený nějaký formulář, pomocí kterého zadáme nové informace, které potřebujeme u daného post_typu uložit. Protože již framework počítá (díky datovému typu meatboxu) s tím, že se bude jednat o formulář, bude nám v tomto případě stačit vytvořit pouze fieldset.

Fieldsety se definují do souboru s configem. Název configu by měl být vždy totožný s tím, jaké entitě patří. V našem případě se tedy bude jednat o soubor kt_wp_fw_post_config.inc.php.

Do souboru s configem vytvoříme definici fieldsetu:

Vytvoření metaboxu s definovaným fieldsetem

Nyní provedeme vytvoření metaboxu a jeho napojení na post_type typu příspěvek. Pro tento účel nám bude sloužit následující kód, který umístíme do souboru kt_wp_fw_post_metaboxe.inc.php – viz výše.

Nyní, když si obnovíme editor příspěvku, uvidíme náš nový metabox:

Přidání našeho metaboxu mezi ostatní.

Nyní je důležití vědět, že o uložení a editaci dat v metaboxu se již stará framework. Nemusíte řešit žádné zpracování dat, jejich načítání do formuláře nebo jiné zapeklité postupy. Máme hotovo.

Takových to metaboxů můžete vytvořit libovolně mnoho – se všemi různými fieldy, které Vám framework nabízí. Všechny data jsou poté dostupné v tabulce na wp_postmeta pod klíčem, jehož název jsme definovali jako konstantu v configu, kde jsou jednotlivé parametry fieldů a fieldsetu samotného.

Framework bude také provádět automatickou validaci dat, kterou si případně u fieldu vynutíte. Můžete tak snadno kontrolovat obsah, který Vám tam správce webových stránek bude předávat.

Více mtaboxů pro jeden post_type

Napřed je potřeba definovat další fieldset v configu. V configu nám také přibude statická funkce, která nám bude vracet kolekci všech fieldsetů, které chceme takto hromadně přidávat.

Nyní trochu změníme kód, v našem souboru s metaboxem. Namísto statické funkce create použijeme funkci createMultiple.

Nyní, když se podíváme na editaci našeho příspěvku vidíme, že se naše skupina metaboxů zase rozrostla.

Vytvoření více metaboxů pomocí funkce createMultiple()

 

Hotovo. Právě jste provedli implementaci dvou metabxů na základě definovaných fieldestů, které se vždy uloží příslušnému příspěvku do tabulky wp_postmeta.

Podobné články

Tento díl nám ukáže, jak je možné vytvářet vlastní typy obsahu – mimo databázovou strukturu. Velmi často nastává situace, kdy…

V minulém díle jsme si ukázali, jak snadno přidat metabox k post typům – ať už nativním v rámci WordPressu…

V předchozích dílech jsme si ukázali, jak snadno a rychle vytvořit metabox, jak do něj umístit prvky formuláře proto, abychom…

O autorovi: Tomáš Kocifaj

Tomáš Kocifaj

Tomáš aktivně v oboru tvorby webových stránek podniká už 6. rok. Za tu dobu nasbíral spoustu zkušeností, dovedností a představu o tom, jak by měla práce takového člověka probíhat. Čím by se neměl zdržovat, zatěžovat a podle toho také s kolegou Martinem začal psát tento projekt.



Odebírejte novinky z FW

Sledujte nás!

Tyto stránky využívají Cookies. Používáním těchto stránek vyjadřujete souhlas s používáním Cookies.Zjistit víceOK, rozumím