Vlastní typy příspěvků jsou jedním z klíčových prvků, které byste měli pochopit, pokud chcete vytvořit flexibilní, profesionální stránky WordPress.
Ty typy vlastních příspěvků umožňují přidat vlastní typ dat. což může být článek, píseň, film nebo tisíce dalších věcí. Vlastní typy příspěvků umožňují kategorizovat data podle vašich individuálních potřeb, což vám umožní získat větší kontrolu nad tím, jak se vaše stránky chovají.
V tomto článku vás seznámím s vytvořením zakázkového typu filmu pro filmovou databázi.
Abychom mohli vytvořit webovou stránku filmu, musíme vytvořit databázi. Pokud byste to udělali bez vlastních typů příspěvků, bylo by to extrémně komplikované a potenciálně by mohlo dojít ke střetu s naší stávající instalací WordPress. Vlastní typ příspěvku však bude mít své vlastní administrátorské menu a vlastní stránku pro úpravy, pokud bychom chtěli dokonce přidat vlastní taxonomie na stránku s názvy a vlastnostmi, které vyhovují projektu.
Vlastní typy příspěvků jsou to, co vezme WordPress z blogovací platformy do plnohodnotného CMS. Poskytují nám svobodu, aby si naši filmovou stránku vytvořili bez jakýchkoli nepříjemných hacků.
V tomto článku uvedu veškerý kód, který je nezbytný k vytvoření vlastního typu příspěvku, a pak jej projdeme line-by-line, abyste se dozvěděli, co dělá každá část a přizpůsobí ji vašim potřebám.
Zde je úplný kód, který se přidá do souboru functions.php :
add_action( 'init', 'register_movie' );function register_movie() {$labels = array('name' => 'Movies','singular_name' => 'Movie','add_new' => 'Add New','add_new_item' => 'Add New Movie','edit_item' => 'Edit Movie','new_item' => 'New Movie','view_item' => 'View Movie','search_items' => 'Search Movies','not_found' => 'No movies found','not_found_in_trash' => 'No movies found in Trash','menu_name' => 'Movies',);$args = array('labels' => $labels,'hierarchical' => false,'description' => 'Here you will add all the movies for the database','supports' => array( 'title', 'editor', 'thumbnail' ),'taxonomies' => array( 'genre', 'movies', 'year' ),'public' => true,'show_ui' => true,'show_in_menu' => true,'menu_position' => 5,//'menu_icon' => the image link here,'show_in_nav_menus' => true,'publicly_queryable' => true,'exclude_from_search' => false,'has_archive' => true,'query_var' => true,'can_export' => true,'rewrite' => true,'capability_type' => 'post');register_post_type( 'movie', $args );}
Jak můžete vidět poněkud velký kus kódu, jde do vytváření vlastního typu příspěvku, ale pokud mu rozumíte, budete mít tento kód k dispozici a přizpůsobit jej vašim projektům. V první řadě funkci zavěsíme s naším vlastním typem příspěvku na init a to znamená, že naše funkce bude spuštěna, když WordPress učiní tak, že budeme mít vždy na našem palubním panelu:
add_action( 'init', 'register_movie' );
V následujícím řádku začínáme tím, že budeme vymezovat název naší funkce a proměnnou se všemi popisky, které budou spojeny s typem našeho filmu, aby bylo možné vše přizpůsobit.
První věc, kterou deklarujeme na štítcích, je název našeho vlastního typu příspěvku, v množném a jednotném tvaru:
'name' => 'Movies','singular_name' => 'Movie',
V příštích dvou řádcích musíme zadat náš text Přidat nový text (pokud chceme změnit) a pak nastavíme položku Přidat nový film, takže když přidáváme nový film, máme vlastní zkušenost namísto přidání filmu a mít nadpis "Přidat novou příspěvek".
'add_new' => 'Add New','add_new_item' => 'Add New Movie',
Po označení štítků pro vytvoření nového filmu je potřeba nastavit štítky pro úpravu, nový text položky (ve výchozím nastavení je Nový příspěvek / Nová stránka) a také musíme nastavit text příspěvku po zobrazení:
'edit_item' => 'Edit Movie','new_item' => 'New Movie','view_item' => 'View Movie',
Nyní se na štítcích přesouváme do vyhledávacích funkcí v administrátorovi wordpress admin a na našich štítcích. Je třeba nastavit štítky, když vyhledáváme filmy, pokud nejsou nalezeny žádné výsledky, a také, pokud v koši nejsou nalezeny žádné výsledky:
'search_items' => 'Search Movies','not_found' => 'No movies found','not_found_in_trash' => 'No movies found in Trash',
Poslední etiketa mluví sama o sobě, zde musíme umístit jméno, které chceme mít v uživatelském rozhraní uživatelského typu, v tomto případě právě držíme "Filmy":
'menu_name' => 'Movies',);
Nyní se musíme přesunout k našim argumentům, protože jsem vytvořil další proměnnou, která bude obsahovat všechny argumenty, které jsem nazval args.
Prvním argumentem, o který se žádá, jsou štítky a vše, co musíme udělat, je poukázat na proměnnou štítků, kterou jsme právě prozkoumali, a to takto:
$args = array('labels' => $labels,
V dalším řádku je třeba nastavit, zda bude náš typ příspěvku hierarchický jako stránky nebo ne (jako příspěvky). V mém případě nechci, aby filmy byly hierarchické, takže jsem je nastavil jako falešný. Další řádek je pouze volitelný popis typu příspěvku.
'hierarchical' => false,'description' => 'Here you will add all the movies for the database',
Další řádek je důležitý; zde musíme specifikovat, co bude podporovat náš vlastní typ příspěvku, jaké pole bude mít. Možnosti pro toto pole jsou:
V mém případě a pro můj typ příspěvku chci pouze, aby podporoval titul, editor WYSIWYG , miniaturu a komentáře, a abych to udělal, musím přidat pole v tomto řádku, například takto:
'supports' => array( 'title', 'editor', 'thumbnail','comments' ),
V dalším řádku je třeba specifikovat, jaké taxonomie bude používat, a protože budeme vytvářet vlastní taxonomie, jsou to ty, které budou přidány v tomto řádku:
'taxonomies' => array( 'genre', 'actors', 'year' ),
Další tři řádky souvisí s viditelností postového typu v administrativní oblasti a vše, co dělám, je nastaveno na hodnotu true:
'public' => true,'show_ui' => true,'show_in_menu' => true,
Dále se přesuneme na pozici nabídky, ve které se má zobrazit typ příspěvku. Zde také máme spoustu možností:
V mém případě jsem chtěl, aby se filmy objevily ihned po příspěvcích, takže jsem nastavil jeho pozici na 5, tak jako tak:
'menu_position' => 5,
Na dalším řádku se postaráme o ikonu, můžeme nastavit naši vlastní ikonu nebo ji nechat prázdnou a místo toho dostaneme ikonu příspěvků, řádek poté se postará o to, co chceme, aby se tento typ příspěvku zobrazil pro výběr v nabídkách .
'menu_icon' => //the image link here,'show_in_nav_menus' => true,
V následujících 3 řádcích přidáme možnosti postového typu. nejprve nastavíme, zda chceme, aby byl tento typ příspěvku dotazován na frontě, a rozhodneme se, zda chceme, aby výsledky vyhledávání typu byly vyloučeny z vyhledávání, a konečně rozhodneme, jestli chceme archiv pro typ filmu:
'publicly_queryable' => true,'exclude_from_search' => false,'has_archive' => true,
V dalším řádku nastavíme proměnnou dotazu pro náš typ příspěvku a bude to definovat, jak bude vypadat adresa URL. Pro tuto možnost máme tři možné parametry: můžeme ji nastavit na hodnotu true a pak můžeme dosáhnout filmu pomocí /? Movie = name_of_movie; můžeme jej nastavit na řetězec tak, aby film v adrese URL byl nahrazen tím, co chceme, jako například "show" a museli bychom použít /? show = name_of_movie , abychom dosáhli stejného filmu; poslední možností je nastavit hodnotu na hodnotu false a tímto způsobem nebude možné dosáhnout filmu pomocí query_var. V mém případě as ohledem na druhou možnost jsem nastavil dotaz var na true tak, abychom jej mohli dosáhnout pomocí query_var filmu:
'query_var' => true,
V následujícím řádku se rozhodneme, zda chceme, aby byly filmy exportovatelné a pak jsme si vybrali slug pro tento typ příspěvku, v mém případě jsem se právě zdržel s pravdou mít 'film' jako slimák, ale můžete si vybrat libovolný řetězec být slim a máte opravdu spoustu možností, tento parametr je rozsáhlý.
'can_export' => true,'rewrite' => true,
Posledním argumentem našeho argumentu je, že jsme nastavili typ způsobilosti našeho příspěvku a protože chci, aby měl tytéž tytéž jako normální příspěvky, dal jsem mu hodnotu příspěvku, a to jako tak:
'capability_type' => 'post');
Náš štítky a argumenty jsou hotové, vše, co musíme udělat, je zaregistrovat náš typ příspěvku a funkce register_post_type má dva parametry, první je název našeho vlastního typu příspěvku (to má maximálně 20 písmen a bez velkých písmen nebo mezery) a druhá je argumenty pro typ post a v tomto budeme jednoduše umístit svou proměnnou args:
register_post_type( 'movie', $args );}
Náš typ příspěvku je vytvořen a plně funkční a vše, co potřebujete, aby se zobrazilo ve vašich stránkách, je nějaké wp_query kouzlo.
Doufám, že uvidíte, proč tolik lidí používá WordPress pro vlastní typy příspěvků.
Tento článek byl určen k tomu, abyste pochopili proces vytváření vlastního typu příspěvku a poskytli vám výchozí bod pro vytváření vlastních úžasných typů vlastních příspěvků.
Doporučený snímek / náhled, přizpůsobený obraz ATOMIC Hot Links, přes Flickr.