SlideShare una empresa de Scribd logo
1 de 60
Descargar para leer sin conexión
CUSTOM POST TYPES
Post formats
Kdo neví co je to Wordpress?
Základní rozdělení druhů obsahu

 POST – článek
 PAGE – stránka

 ATTACHMENT – soubor
 REVISION – revize
 NAVIGATION MENU – navigační menu
POST - článek
Článek je obsah, který publikujete periodicky a dá se řadit do tematických
kategorií.
Je to základ blogů, webových magazínů a portálů.
Každý, kdo kategorizuje obsah, vytváří články.
Kategorie = Taxonomie
Protože články mohou být velmi různorodé, spojnice mezi nimi jsou
taxonomie, což se dá označit za společnou vlastnost určité množiny článků.
Do taxonomie patří i TAGY, štítky. Tagy mohou ještě více propojit články
navzájem, můžete mít kategorii Sport a kategorii Bulvár. Štítek Jaromír Jágr
propojí články „Jarda zase v kasínu“ a článek „Devils opět prohráli“.
PAGE - stránka
Stránka je oproti článku obsah, který má ve struktuře webu neměnné místo a
jeho obsah je „Statický“.
Typickou ukázkou stránek, jsou firemní weby, kde najdete „O nás“,
„Reference“, „Kontakt“.
Stránka nemá kategorii, jde o část webu, která se často nemění a je
zaměřená na jednu „informaci“.
Příklad stránky – Reference
Stavební firma přidává na stránku reference, ale informace se nemění, pouze
se rozšiřuje její velikost.
ATTACHMENT - soubory
Každý soubor, který nahrajete do Wordpressu je attachment.
Protože se jedná o druh obsahu, má i svou vlastní stránku.
URL souboru != url attachment page
Zde vzniká nepochopení, protože url souboru vede do složky, ale url attachment
page je na stejné úrovni, jako url článku, nebo stránky.
Attachment jsou ve většině případů obrázky.
Může ale jít o jakýkoliv soubor, který je podporován
 jpeg
 csv
 pdf

 mp4
REVISION - revize
Revize jsou uložené všechny varianty jednoho článku, které jste vytvořili.
Každá změna, kterou uděláte v obsahu, se uloží jako revize a vy se k ní pak
budete moci vrátit v případě, že to bude potřeba.
Navigační menu
Navigační menu je obsah, který vytvoříte pokaždé, když uložíte nějaké menu.
Do něj se ukládají všechny informace, které Wordpress potřebuje pro
vygenerování menu.
Drtivá většina menu v šablonách jsou vytvářena tímto způsobem.
POST FORMATS – post formáty
Jak název napovídá, jedná se o různé formáty postů, tedy článků. Jsou to v
podstatě různé obaly na jeden druh obsahu. Pokud si druhy obsahu označíme
jako dopravní prostředky, tak stránka je automobil, článek je vlak.
Ve vlaku můžete najít normální vagón, kuřácký vagón, poštovní vagón, jídelní
vagón, atd…

Stejně tak je to i s post formáty, protože máte k dispozici články a těm můžete
přiřadit post formát normální, video, chat, obrázek, atd…
Šablona musí post formáty podporovat
V šabloně musí být definovaná podpora post formátů, jinak nejsou k dispozici
add_theme_support( ‚post-formats‘, array( ‚aside‘,‘image‘,‘video‘ ) );
Podporované post formáty
 Aside
 Gallery
 Link
 Image

 Quote
 Status
 Video
 Audio

 Chat
Standartní článek
Aside
Gallery
Status a Link
Image
Quote
Video
Audio
Chat
Custom post types
Custom post type jsou vlastní druhy obsahu. Wordpress se díky možnosti
vytvářet vlastní obsah, začíná zbavovat nálepky blogovacího systému a
vznikají pro něj eshopové a další pluginy.
Můžete tak vytvořit jakýkoliv druh obsahu a ten pak používat. Jste schopni
separovat takový obsah od článků a stránek, díky čemuž je administrace
obsáhlejšího webu přehlednější.
Zároveň je díky hierarchickému uspořádání načítání souborů šablony, možné
vytvořit vlastní zobrazení obsahu custom post types.
V praxi to znamená, že pokud máte post type Hotel a vytvoříte soubor s
názvem single-hotel.php, při zobrazení detailu obsahu Hotel, Wordpress
automaticky načte tento soubor, který může být nastylován odlišným
způsobem, než zbytek šablony.
Taxonomie
Stejně jako u článků, je možné pro custom post types definovat taxonomie.
Protože jsem v minulém slidu zmiňoval Hotel, můžeme definovat taxonomie pro
Hotely.
 Počet hvězdiček – hierarchická taxonomie
 Poloha – hierarchická taxonomie
 Výlety – nehierarchická taxonomie
Rozdíl mezi hierarchickou a nehierarchickou taxonomií, je v tom, že
hierarchická se vytváří jako kategorie u článků a dá se přiřazovat jako parent
a child. Naproti tomu nehierarchická se chová jako štítky.
Použití custom post types
Šablony
V šablonách se vlastní typy obsahu používají především v souvislosti se
šablonou. Pokud se jedná například o šablonu pro fotografa, který bude
prezentovat svou práci, může být součástí šablony Fotogalerie

Pluginy
Pokud logika vytvoření obsahu říká, že by měl být nezávislý na šabloně, je
vhodné umístit generování custom post types do pluginu. Příkladem jsou
eshopy, realitní pluginy, nebo inzertní pluginy. Osobně jsem příznivcem pluginů.
Příklady použití v šablonách
 Portfolio

 Faq
 Testimonials
Toto je několik z druhů obsahů, se kterými se můžete setkat v
šablonách, většinou v prémiových.
Portfolio
Příklad portfolia, jako vlastního obsahu je šablona Enfold z Themeforest
Portfolio detail
FAQ custom post type
FAQ v šabloně Avada
Custom post types v pluginech
Většina nejznámějších pluginů, využívá vlastní druh obsahu.
 Woocommerce
 WP Property
 Events Manager Plugin

 Super Carousel
 A mnoho dalších
Jsem příznivcem využívání vlastních druhů obsahu v pluginech, protože
propojení logiky custom post types se šablonami vás omezuje. Pokud změníte
šablonu, odstraníte funkce, které custom post types generují a nebudou se
vám zobrazovat.
Woocommerce
Woocommerce je nejpoužívanější plugin pro vytvoření eshopu z Wordpressu.
Pro vytvoření produktů a objednávek používá právě custom post types. Díky
tomu může být zboží i objednávky odděleny od ostatního obsahu a lze tak pro
něj vytvářet vlastní šablony.
Woocommerce detail produktu
Woocommerce kategorie produktu
K vlastnímu obsahu lze nadefinovat taxonomie, u Woocommerce produktu to
jsou kategorie produktu a štítky produktu
WP Property – realitní plugin
Dalším velmi komplexním pluginem, který využívá custom post types je WP
Property. Díky kvalitně zpracovanému způsobu správy vlastního
obsahu, dokážete z Wordpressu udělat stránky s pro realitní kancelář.
WP Property - nemovitost
Jak vytvořit vlastní Custom Post Type
Pomocí pluginu:
 Custom Post Type UI
 Types – Custom Fields and Post Types

Vygenerováním v online generátoru
 themergency.com/generators/wordpress-custom-post-types/
 generatewp.com/post-type/

Použitím vlastní funkce
Custom Post Type pluginy
Pluginy pro vygenerování vlastních druhů obsahů, nejsou vůbec špatné a
nemusíte se tedy prokousávat codexem, aby jste si vytvořili například portfolio.

Nejpoužívanější je Custom Post Type UI, druhým je Types. Na Wordpress.org je
jich celá řada, liší se jen v drobnostech.
Online generátory
Je to obdoba pluginů, jedná se o formuláře dostupné online, které vám
vygenerují potřebný kód.
http://generatewp.com/post-type/
http://themergency.com/generators/wordpress-custom-post-types/
Použití funkcí
Pomocí funkcí jste schopni vygenerovat jakýkoliv vlastní druh obsahu.
Máte absolutní kontrolu nad kódem, můžete eliminovat to co nepotřebujete.
Vše prefixujte – vytvořte si originální prefix a ten použijte, předejdete konfliktům.
Rezervované názvy, jsou již dříve zmíněné druhy obsahu past, page, atd…
Nepoužívejte názvy
 action
 order

 theme
Register post type
Register_post_type je funkce, s kterou zaregistrujete vámi zvolený druh obsahu.
Funkci i s jejími argumenty vložíte do funkce, kterou následně zavěsíte do init
action hooku.
Použití:
Custom post type - Reference
register_post_type - argumenty
 labels

 capability_type

 description

 capability

 public

 has_archive

 publicly_queryable

 hierarchical

 show_ui

 menu_position

 show_in_menu

 menu_icon

 show_in_nav_menus

 map_meta_cap

 show_in_admin_bar

 supports

 query_var

 exclude_from_search

 can_export

 register_meta_box_cb

 delete_with_user

 taxonomies

 rewrite
Register_post_type - labels
Labels je pole výrazů, které budou k
obsahu přiřazeny.
Například pro name Produkty, by
singular_name mělo být
Produkt, protože se jedná
pojmenování jednoho produktu.
Mimo name a singular_name se
výrazy zobrazují v
administraci, all_items – Všechny
reference, new_item – Nová
reference, atd…

 name
 singular_name
 menu_name

 all_items
 add_new
 add_new_item
 edit_item
 new_item
 view_item
 search_items
 not_found
 not_found_in_trash
 parent_item_colon
Description/public/publicly_queryable
Description je popis vlastního obsahu, nesetkal jsem se s tím, kde by se měl
zobrazovat.
Public je argument, který určuje, zda je custom post type „veřejný“.
Dokumentace je v tomto bodě nejednoznačná. Pokud je true, měl by umožnit
přístup pro public_queryable, show_ui, show_in_nav_menus a
exclude_from_search nastaví na false.
Publicly_queryable – argument, který určuje, zda se bude custom post type
řadit do parse_request(). Jeho defaultní nastavení záleží na tom, zda je
definován. Pokud není, řídí se podle nastavení argumentu public. Pokud tedy
neuvedete public, nastaví se oba argumenty na false.
Exclude_from_search / can_export
Exclude_from_search vyloučí definovaný obsah z vyhledávacího dotazu.
Defaultně je nastavený na false, tedy je post type vyhledatelný. Opět to závisí
na jeho definici, nebo na definici public. Public je nastavený defaultně na
false, při neuvedení public a zároveň exclude_from_search, nebude možné
post type vyhledat. Při definování public – true, bude exclude_search
automaticky false.
Can_export definuje, zde se bude tento druh obsahu moci exportovat.
Defaultně nastaveno na true.
Show_ui / show_in_nav_menu
Show_ui určuje, zda se bude pro daný post type zobrazovat nastavení v
administraci.
Show_in_nav_menu definuje zobrazování obsahu v navigačních menu.
Oba argumenty jsou přímo závislé na argumentu public. Pokud je public
uvedený a nastavený na true, oba argumenty jsou také true. Pokud se vám
tedy nezobrazuje custom post type v nabídce menu, zkuste hledat problém
zde. Na druhou stranu, pokud definujete show_ui jako false, může být public
jaký chce, platí poslední definice.
Show_in_menu / show_in_admin_menu
Show_in_menu určuje, zda se zobrazí post type v postranním menu
administrace. Show_ui musí být true, jinak se vám nic nezobrazí.
Pokud bude show_in_menu false, nic neuvidíte, když bude true, zobrazí se
klasicky název post type. Můžete však ještě použít třetí parametr a přiřadit
menu třeba pod položku tool.

Show_in_admin_menu nastaví zobrazení v horním admin baru, ale závisí na
nastavení show_in_menu. Pokud bude false, nice se nezobrazí.
Query_var / hierarchical
Query_var nabízí větší kontrolu nad hodnotou, která bude použita v
parse_request().
Defaultně je nastavena na true a post type je tak k dispozici v query var. False
obsah znepřístupní pro query, ale je zde ještě třetí hodnota, kterou je string a
můžete tak definovat náhradu za ?{post_type_key=post-slug} na
?{co_tady_chci_mit=post-slug}
Hierarchical určuje, zda bude možné post type organizovat do stromové
struktury. Obdobně u page, můžete přiřazovat nadřazené stránky.
Rewrite
Rewrite umožňuje definovat strukturu permalinků a má několik hodnot. Může
být false, true, nebo array. Nás zajímají hodnoty pole.
Slug – řetězec, který se může překládat. Pokud není uvedený, použije se post
type.
With_front – definuje co bude před slug. Pokud bude ‚domy‘, bude ‚reference‘
špatně, správně bude ‚/domy/reference‘
Feeds – určuje, zda bude mít post type feed, tedy archív. Může být false, nebo
true.
Pages – určuje, zda bude mít post type stránkování. Opět může být true, nebo
false.
Capabilities / capability_type
Capability_type – určuje podle jakého vzoru se bude vytvářet možnost úprav.
Můžete vytvořit capability_type pro array(‚projekt‘,‘projekty‘), nebo jen pro
string – ‚projekt‘.
Capabilities – umožňuje definovat jednotlivé capabilities pro jednotlivé úkony.
Například ‚edit_post‘ => ‚edit_reference‘. Tím přiřadíte odpovídající možnost
pro úpravu post type. Pak můžete jednotlivým uživatelským rolím nadefinovat
přístup k tomuto post type.
Možné capabilities edit_post, read_post, delete_post, edit_posts, edit_others_posts, publish_posts, r
ead_private_posts.
Has_archive / register_meta_box_cb
Has_archive definuje, že post type má archív. Tedy, že jej bude možné
zobrazovat jako výpis kategorie, nebo archív článků.
Register_meta_box_cb nastaví, že u edit formuláře, tam kde budete post type
vytvářet a upravovat, můžete nadefinovat meta box.
Menu_icon / menu_position
Menu_icon je url adresa ikonky, která
se má zobrazit u položky v menu
administrace.
Menu_position – nastaví pozici
položky v administračním menu.
Defaultně bude umístěna pod
komentáře.

 5 – pod Články

 10 – pod Knihovnu médií
 15 – pod Odkazy
 20 – pod Stránky
 25 – pod Komentáře
 60 – pod první oddělovač
 65 – pod Pluginy
 70 – pod Uživatele
 75 – pod Nástroje
 80 – pod Nastavení
 100 – pod druhý oddělovač
Supports
Supports určuje, co vše bude
definovaný post type podporovat.
V základu to je pouze title a editor.
 Title
 Editor
 Author
 Thumbnail

 Excerpt

 Trackbacks
 Custom-fields
 Comments
 Revision

 Page-attributes
 Post-formats
Taxonomies
Pole registrovaných taxonomií, protože je stejně nutné vlastní taxonomie
registrovat, uvádím jen pro úplnost.
Defaultní je bez taxonomií.
Funkce register_taxonomy
Register_taxonomy je funkce, která umožňuje vytvořit vlastní taxonomii a
přiřadit ji k druhu obahu.
Zápis funkce je
register_taxonomy(‚druh_reference‘,‘reference‘,array(argumenty));
Druh reference je name(slug) taxonomie, reference je custom post type, pro
kterou je taxonomie určená. Třetí argument je pole, jehož hodnoty si
popíšeme.
Label a Labels
Label je název taxonomie, který se
bude zobrazovat v administraci. Lze
překládat.
Labels jsou všechny názvy, které
mohou být použití při popisu
taxonomie. Obdobně jsou i labels
pro custom post type.
 name
 singular_name
 menu_name
 all_items
 edit_item
 view_item

 update_item
 add_new_item

 new_item_name
 parent_item
 parent_item_colon
 search_items

 popular_items
 separate_items_with_commas
 add_or_remove_items
 choose_from_most_used

 not_found
Obdobné argumenty jako u post type
Některé argumenty a jejich použití je podobné jako u funkce
register_post_type. Zde je jejich seznam.
 public
 show_ui
 show_in_nav_menus
 meta_box_cb
 hierarchical
 query_var

 rewrite
 capabilities
Sort/update_count_callback/show_admin_column

Sort určuje, zda si bude taxonomie pamatovat pořadí, v jakém budou položky
přidávány.
Update_count_callback, pomocí tohoto argumentu můžete definovat
funkci, která bude volána při změně počtu přiřazeného obsahu. U kategorií
můžete vidět počet článků v dané kategorii.
Show_admin_column určuje, zda se automaticky vytvoří položka taxonomie v
tabulce výpisu custom post type.
Show tag cloud
Show_tagcloud definuje, zda bude pro taxonomii vytvořen mrak štítků.
Děkuji vám za pozornost
Vladislav Musílek
Web:

Musilda.cz

Email:

musilekv@seznam.cz

Twitter:

@vladamusilek

Google+: +MusilekVladislav
Linkedin: vladislav-musílek

Más contenido relacionado

Similar a Custom post types a Post Format

Jak postavit web na word pressu
Jak postavit web na word pressuJak postavit web na word pressu
Jak postavit web na word pressuVladislav Musílek
 
Jak efektivně propagovat eshop s nábytkem
Jak efektivně propagovat eshop s nábytkemJak efektivně propagovat eshop s nábytkem
Jak efektivně propagovat eshop s nábytkemEffectix.com
 
5 tipů jak na vlastní a fungující web
5 tipů jak na vlastní a fungující web5 tipů jak na vlastní a fungující web
5 tipů jak na vlastní a fungující webClocan Marketing
 
Woocommerce úpravy funkčnosti a ovlivňování dat
Woocommerce   úpravy funkčnosti a ovlivňování datWoocommerce   úpravy funkčnosti a ovlivňování dat
Woocommerce úpravy funkčnosti a ovlivňování datVladislav Musílek
 
Pouzitelnost - jak mit uspesny a pratelsky web
Pouzitelnost - jak mit uspesny a pratelsky webPouzitelnost - jak mit uspesny a pratelsky web
Pouzitelnost - jak mit uspesny a pratelsky webguest3d79a4
 
Pouzitelnost - jak mit uspesny a pratelsky web?
Pouzitelnost - jak mit uspesny a pratelsky web?Pouzitelnost - jak mit uspesny a pratelsky web?
Pouzitelnost - jak mit uspesny a pratelsky web?Radek Karban
 

Similar a Custom post types a Post Format (6)

Jak postavit web na word pressu
Jak postavit web na word pressuJak postavit web na word pressu
Jak postavit web na word pressu
 
Jak efektivně propagovat eshop s nábytkem
Jak efektivně propagovat eshop s nábytkemJak efektivně propagovat eshop s nábytkem
Jak efektivně propagovat eshop s nábytkem
 
5 tipů jak na vlastní a fungující web
5 tipů jak na vlastní a fungující web5 tipů jak na vlastní a fungující web
5 tipů jak na vlastní a fungující web
 
Woocommerce úpravy funkčnosti a ovlivňování dat
Woocommerce   úpravy funkčnosti a ovlivňování datWoocommerce   úpravy funkčnosti a ovlivňování dat
Woocommerce úpravy funkčnosti a ovlivňování dat
 
Pouzitelnost - jak mit uspesny a pratelsky web
Pouzitelnost - jak mit uspesny a pratelsky webPouzitelnost - jak mit uspesny a pratelsky web
Pouzitelnost - jak mit uspesny a pratelsky web
 
Pouzitelnost - jak mit uspesny a pratelsky web?
Pouzitelnost - jak mit uspesny a pratelsky web?Pouzitelnost - jak mit uspesny a pratelsky web?
Pouzitelnost - jak mit uspesny a pratelsky web?
 

Más de Vladislav Musílek

Más de Vladislav Musílek (9)

WordPress šablony
WordPress šablonyWordPress šablony
WordPress šablony
 
Word press šablony child theme
Word press šablony   child themeWord press šablony   child theme
Word press šablony child theme
 
WordPress Affiliate a XML feedy
WordPress Affiliate a XML feedyWordPress Affiliate a XML feedy
WordPress Affiliate a XML feedy
 
WP Rest API
WP Rest API WP Rest API
WP Rest API
 
WordPress šablony
WordPress šablony WordPress šablony
WordPress šablony
 
Top plugins for woo commerce eshop
Top plugins for woo commerce eshopTop plugins for woo commerce eshop
Top plugins for woo commerce eshop
 
Woo commerce e-shop
Woo commerce e-shopWoo commerce e-shop
Woo commerce e-shop
 
Je WooCommerce vhodná pro eshop?
Je WooCommerce vhodná pro eshop?Je WooCommerce vhodná pro eshop?
Je WooCommerce vhodná pro eshop?
 
Tvorba wordpress pluginů
Tvorba wordpress pluginůTvorba wordpress pluginů
Tvorba wordpress pluginů
 

Custom post types a Post Format

  • 2. Kdo neví co je to Wordpress?
  • 3. Základní rozdělení druhů obsahu  POST – článek  PAGE – stránka  ATTACHMENT – soubor  REVISION – revize  NAVIGATION MENU – navigační menu
  • 4. POST - článek Článek je obsah, který publikujete periodicky a dá se řadit do tematických kategorií. Je to základ blogů, webových magazínů a portálů. Každý, kdo kategorizuje obsah, vytváří články. Kategorie = Taxonomie Protože články mohou být velmi různorodé, spojnice mezi nimi jsou taxonomie, což se dá označit za společnou vlastnost určité množiny článků. Do taxonomie patří i TAGY, štítky. Tagy mohou ještě více propojit články navzájem, můžete mít kategorii Sport a kategorii Bulvár. Štítek Jaromír Jágr propojí články „Jarda zase v kasínu“ a článek „Devils opět prohráli“.
  • 5.
  • 6. PAGE - stránka Stránka je oproti článku obsah, který má ve struktuře webu neměnné místo a jeho obsah je „Statický“. Typickou ukázkou stránek, jsou firemní weby, kde najdete „O nás“, „Reference“, „Kontakt“. Stránka nemá kategorii, jde o část webu, která se často nemění a je zaměřená na jednu „informaci“. Příklad stránky – Reference Stavební firma přidává na stránku reference, ale informace se nemění, pouze se rozšiřuje její velikost.
  • 7.
  • 8. ATTACHMENT - soubory Každý soubor, který nahrajete do Wordpressu je attachment. Protože se jedná o druh obsahu, má i svou vlastní stránku. URL souboru != url attachment page Zde vzniká nepochopení, protože url souboru vede do složky, ale url attachment page je na stejné úrovni, jako url článku, nebo stránky. Attachment jsou ve většině případů obrázky. Může ale jít o jakýkoliv soubor, který je podporován  jpeg  csv  pdf  mp4
  • 9.
  • 10. REVISION - revize Revize jsou uložené všechny varianty jednoho článku, které jste vytvořili. Každá změna, kterou uděláte v obsahu, se uloží jako revize a vy se k ní pak budete moci vrátit v případě, že to bude potřeba.
  • 11. Navigační menu Navigační menu je obsah, který vytvoříte pokaždé, když uložíte nějaké menu. Do něj se ukládají všechny informace, které Wordpress potřebuje pro vygenerování menu. Drtivá většina menu v šablonách jsou vytvářena tímto způsobem.
  • 12. POST FORMATS – post formáty Jak název napovídá, jedná se o různé formáty postů, tedy článků. Jsou to v podstatě různé obaly na jeden druh obsahu. Pokud si druhy obsahu označíme jako dopravní prostředky, tak stránka je automobil, článek je vlak. Ve vlaku můžete najít normální vagón, kuřácký vagón, poštovní vagón, jídelní vagón, atd… Stejně tak je to i s post formáty, protože máte k dispozici články a těm můžete přiřadit post formát normální, video, chat, obrázek, atd… Šablona musí post formáty podporovat V šabloně musí být definovaná podpora post formátů, jinak nejsou k dispozici add_theme_support( ‚post-formats‘, array( ‚aside‘,‘image‘,‘video‘ ) );
  • 13. Podporované post formáty  Aside  Gallery  Link  Image  Quote  Status  Video  Audio  Chat
  • 15. Aside
  • 18. Image
  • 19. Quote
  • 20. Video
  • 21. Audio
  • 22. Chat
  • 23. Custom post types Custom post type jsou vlastní druhy obsahu. Wordpress se díky možnosti vytvářet vlastní obsah, začíná zbavovat nálepky blogovacího systému a vznikají pro něj eshopové a další pluginy. Můžete tak vytvořit jakýkoliv druh obsahu a ten pak používat. Jste schopni separovat takový obsah od článků a stránek, díky čemuž je administrace obsáhlejšího webu přehlednější. Zároveň je díky hierarchickému uspořádání načítání souborů šablony, možné vytvořit vlastní zobrazení obsahu custom post types. V praxi to znamená, že pokud máte post type Hotel a vytvoříte soubor s názvem single-hotel.php, při zobrazení detailu obsahu Hotel, Wordpress automaticky načte tento soubor, který může být nastylován odlišným způsobem, než zbytek šablony.
  • 24. Taxonomie Stejně jako u článků, je možné pro custom post types definovat taxonomie. Protože jsem v minulém slidu zmiňoval Hotel, můžeme definovat taxonomie pro Hotely.  Počet hvězdiček – hierarchická taxonomie  Poloha – hierarchická taxonomie  Výlety – nehierarchická taxonomie Rozdíl mezi hierarchickou a nehierarchickou taxonomií, je v tom, že hierarchická se vytváří jako kategorie u článků a dá se přiřazovat jako parent a child. Naproti tomu nehierarchická se chová jako štítky.
  • 25. Použití custom post types Šablony V šablonách se vlastní typy obsahu používají především v souvislosti se šablonou. Pokud se jedná například o šablonu pro fotografa, který bude prezentovat svou práci, může být součástí šablony Fotogalerie Pluginy Pokud logika vytvoření obsahu říká, že by měl být nezávislý na šabloně, je vhodné umístit generování custom post types do pluginu. Příkladem jsou eshopy, realitní pluginy, nebo inzertní pluginy. Osobně jsem příznivcem pluginů.
  • 26. Příklady použití v šablonách  Portfolio  Faq  Testimonials Toto je několik z druhů obsahů, se kterými se můžete setkat v šablonách, většinou v prémiových.
  • 27. Portfolio Příklad portfolia, jako vlastního obsahu je šablona Enfold z Themeforest
  • 29. FAQ custom post type FAQ v šabloně Avada
  • 30. Custom post types v pluginech Většina nejznámějších pluginů, využívá vlastní druh obsahu.  Woocommerce  WP Property  Events Manager Plugin  Super Carousel  A mnoho dalších Jsem příznivcem využívání vlastních druhů obsahu v pluginech, protože propojení logiky custom post types se šablonami vás omezuje. Pokud změníte šablonu, odstraníte funkce, které custom post types generují a nebudou se vám zobrazovat.
  • 31. Woocommerce Woocommerce je nejpoužívanější plugin pro vytvoření eshopu z Wordpressu. Pro vytvoření produktů a objednávek používá právě custom post types. Díky tomu může být zboží i objednávky odděleny od ostatního obsahu a lze tak pro něj vytvářet vlastní šablony.
  • 33. Woocommerce kategorie produktu K vlastnímu obsahu lze nadefinovat taxonomie, u Woocommerce produktu to jsou kategorie produktu a štítky produktu
  • 34. WP Property – realitní plugin Dalším velmi komplexním pluginem, který využívá custom post types je WP Property. Díky kvalitně zpracovanému způsobu správy vlastního obsahu, dokážete z Wordpressu udělat stránky s pro realitní kancelář.
  • 35. WP Property - nemovitost
  • 36. Jak vytvořit vlastní Custom Post Type Pomocí pluginu:  Custom Post Type UI  Types – Custom Fields and Post Types Vygenerováním v online generátoru  themergency.com/generators/wordpress-custom-post-types/  generatewp.com/post-type/ Použitím vlastní funkce
  • 37. Custom Post Type pluginy Pluginy pro vygenerování vlastních druhů obsahů, nejsou vůbec špatné a nemusíte se tedy prokousávat codexem, aby jste si vytvořili například portfolio. Nejpoužívanější je Custom Post Type UI, druhým je Types. Na Wordpress.org je jich celá řada, liší se jen v drobnostech.
  • 38. Online generátory Je to obdoba pluginů, jedná se o formuláře dostupné online, které vám vygenerují potřebný kód. http://generatewp.com/post-type/ http://themergency.com/generators/wordpress-custom-post-types/
  • 39. Použití funkcí Pomocí funkcí jste schopni vygenerovat jakýkoliv vlastní druh obsahu. Máte absolutní kontrolu nad kódem, můžete eliminovat to co nepotřebujete. Vše prefixujte – vytvořte si originální prefix a ten použijte, předejdete konfliktům. Rezervované názvy, jsou již dříve zmíněné druhy obsahu past, page, atd… Nepoužívejte názvy  action  order  theme
  • 40. Register post type Register_post_type je funkce, s kterou zaregistrujete vámi zvolený druh obsahu. Funkci i s jejími argumenty vložíte do funkce, kterou následně zavěsíte do init action hooku. Použití:
  • 41. Custom post type - Reference
  • 42. register_post_type - argumenty  labels  capability_type  description  capability  public  has_archive  publicly_queryable  hierarchical  show_ui  menu_position  show_in_menu  menu_icon  show_in_nav_menus  map_meta_cap  show_in_admin_bar  supports  query_var  exclude_from_search  can_export  register_meta_box_cb  delete_with_user  taxonomies  rewrite
  • 43. Register_post_type - labels Labels je pole výrazů, které budou k obsahu přiřazeny. Například pro name Produkty, by singular_name mělo být Produkt, protože se jedná pojmenování jednoho produktu. Mimo name a singular_name se výrazy zobrazují v administraci, all_items – Všechny reference, new_item – Nová reference, atd…  name  singular_name  menu_name  all_items  add_new  add_new_item  edit_item  new_item  view_item  search_items  not_found  not_found_in_trash  parent_item_colon
  • 44. Description/public/publicly_queryable Description je popis vlastního obsahu, nesetkal jsem se s tím, kde by se měl zobrazovat. Public je argument, který určuje, zda je custom post type „veřejný“. Dokumentace je v tomto bodě nejednoznačná. Pokud je true, měl by umožnit přístup pro public_queryable, show_ui, show_in_nav_menus a exclude_from_search nastaví na false. Publicly_queryable – argument, který určuje, zda se bude custom post type řadit do parse_request(). Jeho defaultní nastavení záleží na tom, zda je definován. Pokud není, řídí se podle nastavení argumentu public. Pokud tedy neuvedete public, nastaví se oba argumenty na false.
  • 45. Exclude_from_search / can_export Exclude_from_search vyloučí definovaný obsah z vyhledávacího dotazu. Defaultně je nastavený na false, tedy je post type vyhledatelný. Opět to závisí na jeho definici, nebo na definici public. Public je nastavený defaultně na false, při neuvedení public a zároveň exclude_from_search, nebude možné post type vyhledat. Při definování public – true, bude exclude_search automaticky false. Can_export definuje, zde se bude tento druh obsahu moci exportovat. Defaultně nastaveno na true.
  • 46. Show_ui / show_in_nav_menu Show_ui určuje, zda se bude pro daný post type zobrazovat nastavení v administraci. Show_in_nav_menu definuje zobrazování obsahu v navigačních menu. Oba argumenty jsou přímo závislé na argumentu public. Pokud je public uvedený a nastavený na true, oba argumenty jsou také true. Pokud se vám tedy nezobrazuje custom post type v nabídce menu, zkuste hledat problém zde. Na druhou stranu, pokud definujete show_ui jako false, může být public jaký chce, platí poslední definice.
  • 47. Show_in_menu / show_in_admin_menu Show_in_menu určuje, zda se zobrazí post type v postranním menu administrace. Show_ui musí být true, jinak se vám nic nezobrazí. Pokud bude show_in_menu false, nic neuvidíte, když bude true, zobrazí se klasicky název post type. Můžete však ještě použít třetí parametr a přiřadit menu třeba pod položku tool. Show_in_admin_menu nastaví zobrazení v horním admin baru, ale závisí na nastavení show_in_menu. Pokud bude false, nice se nezobrazí.
  • 48. Query_var / hierarchical Query_var nabízí větší kontrolu nad hodnotou, která bude použita v parse_request(). Defaultně je nastavena na true a post type je tak k dispozici v query var. False obsah znepřístupní pro query, ale je zde ještě třetí hodnota, kterou je string a můžete tak definovat náhradu za ?{post_type_key=post-slug} na ?{co_tady_chci_mit=post-slug} Hierarchical určuje, zda bude možné post type organizovat do stromové struktury. Obdobně u page, můžete přiřazovat nadřazené stránky.
  • 49. Rewrite Rewrite umožňuje definovat strukturu permalinků a má několik hodnot. Může být false, true, nebo array. Nás zajímají hodnoty pole. Slug – řetězec, který se může překládat. Pokud není uvedený, použije se post type. With_front – definuje co bude před slug. Pokud bude ‚domy‘, bude ‚reference‘ špatně, správně bude ‚/domy/reference‘ Feeds – určuje, zda bude mít post type feed, tedy archív. Může být false, nebo true. Pages – určuje, zda bude mít post type stránkování. Opět může být true, nebo false.
  • 50. Capabilities / capability_type Capability_type – určuje podle jakého vzoru se bude vytvářet možnost úprav. Můžete vytvořit capability_type pro array(‚projekt‘,‘projekty‘), nebo jen pro string – ‚projekt‘. Capabilities – umožňuje definovat jednotlivé capabilities pro jednotlivé úkony. Například ‚edit_post‘ => ‚edit_reference‘. Tím přiřadíte odpovídající možnost pro úpravu post type. Pak můžete jednotlivým uživatelským rolím nadefinovat přístup k tomuto post type. Možné capabilities edit_post, read_post, delete_post, edit_posts, edit_others_posts, publish_posts, r ead_private_posts.
  • 51. Has_archive / register_meta_box_cb Has_archive definuje, že post type má archív. Tedy, že jej bude možné zobrazovat jako výpis kategorie, nebo archív článků. Register_meta_box_cb nastaví, že u edit formuláře, tam kde budete post type vytvářet a upravovat, můžete nadefinovat meta box.
  • 52. Menu_icon / menu_position Menu_icon je url adresa ikonky, která se má zobrazit u položky v menu administrace. Menu_position – nastaví pozici položky v administračním menu. Defaultně bude umístěna pod komentáře.  5 – pod Články  10 – pod Knihovnu médií  15 – pod Odkazy  20 – pod Stránky  25 – pod Komentáře  60 – pod první oddělovač  65 – pod Pluginy  70 – pod Uživatele  75 – pod Nástroje  80 – pod Nastavení  100 – pod druhý oddělovač
  • 53. Supports Supports určuje, co vše bude definovaný post type podporovat. V základu to je pouze title a editor.  Title  Editor  Author  Thumbnail  Excerpt  Trackbacks  Custom-fields  Comments  Revision  Page-attributes  Post-formats
  • 54. Taxonomies Pole registrovaných taxonomií, protože je stejně nutné vlastní taxonomie registrovat, uvádím jen pro úplnost. Defaultní je bez taxonomií.
  • 55. Funkce register_taxonomy Register_taxonomy je funkce, která umožňuje vytvořit vlastní taxonomii a přiřadit ji k druhu obahu. Zápis funkce je register_taxonomy(‚druh_reference‘,‘reference‘,array(argumenty)); Druh reference je name(slug) taxonomie, reference je custom post type, pro kterou je taxonomie určená. Třetí argument je pole, jehož hodnoty si popíšeme.
  • 56. Label a Labels Label je název taxonomie, který se bude zobrazovat v administraci. Lze překládat. Labels jsou všechny názvy, které mohou být použití při popisu taxonomie. Obdobně jsou i labels pro custom post type.  name  singular_name  menu_name  all_items  edit_item  view_item  update_item  add_new_item  new_item_name  parent_item  parent_item_colon  search_items  popular_items  separate_items_with_commas  add_or_remove_items  choose_from_most_used  not_found
  • 57. Obdobné argumenty jako u post type Některé argumenty a jejich použití je podobné jako u funkce register_post_type. Zde je jejich seznam.  public  show_ui  show_in_nav_menus  meta_box_cb  hierarchical  query_var  rewrite  capabilities
  • 58. Sort/update_count_callback/show_admin_column Sort určuje, zda si bude taxonomie pamatovat pořadí, v jakém budou položky přidávány. Update_count_callback, pomocí tohoto argumentu můžete definovat funkci, která bude volána při změně počtu přiřazeného obsahu. U kategorií můžete vidět počet článků v dané kategorii. Show_admin_column určuje, zda se automaticky vytvoří položka taxonomie v tabulce výpisu custom post type.
  • 59. Show tag cloud Show_tagcloud definuje, zda bude pro taxonomii vytvořen mrak štítků.
  • 60. Děkuji vám za pozornost Vladislav Musílek Web: Musilda.cz Email: musilekv@seznam.cz Twitter: @vladamusilek Google+: +MusilekVladislav Linkedin: vladislav-musílek