Jak stworzyć własny typ wpisu w WordPress?

Jak stworzyć własny typ wpisu w WordPress?

Kiedy warto dodać własny typ wpisu?

  • równolegle chcesz prowadzić na stronie np. blog i podcast,
  • chcesz utworzyć portfolio, ofertę lub wydarzenia ze specjalnym szablonem dla archiwum lub pojedynczych wpisów,
  • stworzyć samodzielnie stronę www dla amatorskiej ligi piłkarskiej, w której typem treści będą: zawodnicy, drużyny, mecze, terminarz i liga.

Kiedy nie warto dodawać nowego typu?

  • nie chcesz prowadzić bloga i możesz go zastąpić nowym typem wpisu np. podcastem lub aktualnościami.
  • nowy typ wpisu może być stroną z podstronami potomnymi. Jeżeli nie planujesz modyfikacji w szablonie i zależy Ci tylko na wydzieleniu strony w panelu administracyjnym skorzystaj z tej metody,

Ustawienia w Custom Post Type UI

  • Post Type Slug
    Pole wymagane. Tylko znaki alfanumeryczne (a-z), bez polskich znaków diaktrytycznych, bez spacji. Dozwolony podkreślnik, myślnik.
    Nie edytuj. Zmiana „slug” nie przenosi wpisów do nowej nazwy.
  • Plural Label, Singular Label
    Etykieta w panelu administracyjnym dla liczby mnogiej i pojedynczej.
  • Public
    Domyślna wartość: true
    Zalecam zostawić domyślnie na true. Domyślna wartość dla Public Queryable, Show UI, Show in nav, Exclude from search.
    W przypadku wtyczki CPT UI opcja bez większego znaczenia.
  • Public Queryable
    Domyślna wartość: true
    Wartość false spowoduje, że nowy typ wpisu nie pojawi się w archiwum wpisów, wyszukiwarce i w edytorze Gutenberg.
  • Show UI
    Domyślna wartość: true
    Jeżeli tworzysz pomocniczy typ wpisów, np. „szablony email” i nie chcesz by klient miał do tego dostęp – wybierz false.
  • Show in Nav Menus
    Domyślna wartość: true
    Jeżeli Twój motyw obsługuje menu nawigacyjne możesz zostawić na true. W menu w edytorze Gutenberga niezależnie od wybranej opcji będzie możliwość załadowania np. ostatniego odcinka do menu.
  • Delete with user
    Domyślna wartość: false
    Opcja dotyczy sytuacji, w której autor wpisów jest usuwany z WordPressa. Jeżeli ustawione na true wpisy zostaną przeniesione do kosza razem z autorem.
  • Ustawienia REST API
    Wszystkie cztery opcje pozostaw bez zmian.
  • Has Archive
    Domyślna wartość: false
    Chcesz wylistować listę ostatnich odcinków podcastu – ustaw na true. Utworzysz dzięki temu podstronę z archiwum treści z domyślną skróconą nazwą. Chcesz skorzystać z innej nazwy w URL – wypełnij puste pole poniżej.
    Jeżeli „Has Archive” ustawione na „true” to Publicly Queryable też musi być ustawione na true (w przeciwnym razie nie zobaczysz postów).
  • Exclude From Search
    Domyślna wartość: false
    Włączając tą opcję wykluczysz możliwość znalezienia treści przez wyszukiwarkę wewnątrz strony www. Jeżeli Twoje wpisy mają znajdować się tylko na podstronie z archiwami lub w menu – wybierz „true”.
  • Capability Type
    Domyślna wartość: post
    Jeżeli tworzysz własny typ wpisów po raz pierwszy i nie zamierzasz ograniczać dostępów do edycji, usuwania itp. dla ról użytkownika pozostaw na „post”. Jeżeli chcesz możesz wpisać przykładowo wartość „podcast, podcasts”.
    Po takim „zabiegu” będziesz musiał poprzez funkcję add_cap() dodać uprawnienia dla poszczególnych grup użytkowników.
    Zostaną wygenerowane w ten sposób następujące uprawnienia:
    • edit_podcast
    • read_podcast
    • delete_podcast
    • edit_podcasts
    • edit_others_podcasts
    • publish_podcasts
    • read_private_podcasts
  • Hierarchical
    Domyślna wartość: false
    Domyślnie wpisy mają wartość ustawioną na false, natomiast strony ustawioną na true. Jeżeli we własnym typie wpisów chcesz korzystać z funkcjonalności stron podrzędnych – wykorzystaj tą opcję.
  • Can Export
    Domyślna wartość: false
    Jeżeli ustawione na „true” masz możliwość eksportowania danych z nowego typu wpisu z poziomu „Narzędzia -> Eksport”.
  • Rewrite, Custom Rewrite Slug
    Domyślna wartość: true
    Pozostaw wartość na true, w przeciwnym razie twój adres url będzie brzmieć np. przykladowa-strona.pl/?podcast=lorem ipsum zamiast przykladowa-strona.pl/podcast/lorem-ipsum/.
    Chcesz zmienić skróconą nazwę tylko dla adresu URL? Uzupełnij opcję „Custom Rewrite Slug”, dzięki czemu zmienisz ją dla adresów URL.
  • With Front
    Domyślna wartość: true
    Jeżeli korzystasz z własnej struktury linków jak np.
    „przykladowa-strona.pl/blog/%postname%/”
    to adres do odcinka będzie wyglądać tak
    „przykladowa-strona.pl/blog/podcast/%postname%/”.
    Jeżeli ustawisz na false to adres odcinka będzie
    „przykladowa-strona.pl/podcast/%postname%/”.
  • Query Var, Custom Query Var Slug
    Domyślna wartość: true
    Jeżeli ustawione na false nie będziesz mieć możliwości ładowania wpisów np. pod adresem przykladowa-strona.pl/?podcast=witaj-swiecie.
  • Menu Position, Show in Menu, Menu Icon
    W tym miejscu możesz ustawić konkretną pozycję w menu oraz ikonę. Jeżeli chcesz pokazywać nowy typ wpisu w menu upewnij się, że „Show UI” również masz zaznaczone na „true”.
    Dodatkowo w opcji „Show in Menu” możesz umieścić dany wpis np. w zakładce Narzędzia poprzez wpisanie „tools.php”.
  • Metabox callback
    W tym miejscu możesz zdefiniować np. meta_box_podcast. Dzięki temu, będziesz mieć możliwość za pomocą pliku functions.php i funkcji add_meta_box() dodanie bloku z dodatkowymi opcjami.
  • Supports
    Domyślnie zaznaczone trzy pierwsze opcje, czyli: tytuł, edytor i miniaturka wpisu. W zależności od potrzeb możemy dodać m.in. obsługę autorów, atrybutów stron, formatów wpisów, komentarze czy wersjonowanie.
  • Taxonomies
    W ostatniej sekcji możesz dodać obsługę już zarejestrowanych taksonomii.