custom post types a post format

60
CUSTOM POST TYPES Post formats

Upload: vladislav-musilek

Post on 25-Jan-2015

1.702 views

Category:

Technology


6 download

DESCRIPTION

Wordpress Custom Types a Post Format se všemi argumenty. Přednáška z povedeného prvního Wordcampu u nás.

TRANSCRIPT

Page 1: Custom post types a Post Format

CUSTOM POST TYPESPost formats

Page 2: Custom post types a Post Format

Kdo neví co je to Wordpress?

Page 3: Custom post types a Post Format

Základní rozdělení druhů obsahu

POST – článek PAGE – stránka ATTACHMENT – soubor REVISION – revize NAVIGATION MENU – navigační menu

Page 4: Custom post types a Post Format

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 5: Custom post types a Post Format
Page 6: Custom post types a Post Format

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.

Page 7: Custom post types a Post Format
Page 8: Custom post types a Post Format

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

Page 9: Custom post types a Post Format
Page 10: Custom post types a Post Format

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.

Page 11: Custom post types a Post Format

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.

Page 12: Custom post types a Post Format

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‘ ) );

Page 13: Custom post types a Post Format

Podporované post formáty

Aside

Gallery

Link

Image

Quote

Status

Video

Audio

Chat

Page 14: Custom post types a Post Format

Standartní článek

Page 15: Custom post types a Post Format

Aside

Page 16: Custom post types a Post Format

Gallery

Page 17: Custom post types a Post Format

Status a Link

Page 18: Custom post types a Post Format

Image

Page 19: Custom post types a Post Format

Quote

Page 20: Custom post types a Post Format

Video

Page 21: Custom post types a Post Format

Audio

Page 22: Custom post types a Post Format

Chat

Page 23: Custom post types a Post Format

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.

Page 24: Custom post types a Post Format

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.

Page 25: Custom post types a Post Format

Použití custom post types

ŠablonyV š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

PluginyPokud 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ů.

Page 26: Custom post types a Post Format

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.

Page 27: Custom post types a Post Format

Portfolio

Příklad portfolia, jako vlastního obsahu je šablona Enfold z Themeforest

Page 28: Custom post types a Post Format

Portfolio detail

Page 29: Custom post types a Post Format

FAQ custom post typeFAQ v šabloně Avada

Page 30: Custom post types a Post Format

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.

Page 31: Custom post types a Post Format

WoocommerceWoocommerce 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.

Page 32: Custom post types a Post Format

Woocommerce detail produktu

Page 33: Custom post types a Post Format

Woocommerce kategorie produktuK vlastnímu obsahu lze nadefinovat taxonomie, u Woocommerce produktu to jsou kategorie produktu a štítky produktu

Page 34: Custom post types a Post Format

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ář.

Page 35: Custom post types a Post Format

WP Property - nemovitost

Page 36: Custom post types a Post Format

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

Page 37: Custom post types a Post Format

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.

Page 38: Custom post types a Post Format

Online generátoryJe 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/

Page 39: Custom post types a Post Format

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

Page 40: Custom post types a Post Format

Register post typeRegister_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í:

Page 41: Custom post types a Post Format

Custom post type - Reference

Page 42: Custom post types a Post Format

register_post_type - argumenty labels

description

public

publicly_queryable

show_ui

show_in_menu

show_in_nav_menus

show_in_admin_bar

query_var

can_export

delete_with_user

rewrite

capability_type

capability

has_archive

hierarchical

menu_position

menu_icon

map_meta_cap

supports

exclude_from_search

register_meta_box_cb

taxonomies

Page 43: Custom post types a Post Format

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

Page 44: Custom post types a Post Format

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.

Page 45: Custom post types a Post Format

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.

Page 46: Custom post types a Post Format

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.

Page 47: Custom post types a Post Format

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í.

Page 48: Custom post types a Post Format

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.

Page 49: Custom post types a Post Format

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.

Page 50: Custom post types a Post Format

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, read_private_posts.

Page 51: Custom post types a Post Format

Has_archive / register_meta_box_cbHas_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.

Page 52: Custom post types a Post Format

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č

Page 53: Custom post types a Post Format

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

Page 54: Custom post types a Post Format

Taxonomies

Pole registrovaných taxonomií, protože je stejně nutné vlastní taxonomie registrovat, uvádím jen pro úplnost.

Defaultní je bez taxonomií.

Page 55: Custom post types a Post Format

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.

Page 56: Custom post types a Post Format

Label a LabelsLabel 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

Page 57: Custom post types a Post Format

Obdobné argumenty jako u post typeNě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

Page 58: Custom post types a Post Format

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.

Page 59: Custom post types a Post Format

Show tag cloud

Show_tagcloud definuje, zda bude pro taxonomii vytvořen mrak štítků.

Page 60: Custom post types a Post Format

Děkuji vám za pozornost

Vladislav Musílek

Web: Musilda.cz

Email: [email protected]

Twitter: @vladamusilek

Google+: +MusilekVladislav

Linkedin: vladislav-musílek