Czym są własne typy postów i jak je tworzyć na WordPress?

Wiele osób sądzi, że WordPress ogranicza się jedynie do blogowania i prostych stron internetowych, jednak platforma ta oferuje znacznie więcej możliwości dzięki funkcji własnych typów postów. W tym artykule przybliżę, jak rozpocząć pracę z tą elastyczną funkcją, przedstawię narzędzia i wtyczki ułatwiające proces tworzenia własnych typów treści oraz pokażę Ci jak wygląda przykładowy kod. Zapraszam do czytania!

Jak rozpocząć tworzenie własnych typów postów w WordPress?

Tworzenie własnych typów postów w WordPress otwiera przed użytkownikami nowe możliwości personalizacji i organizacji treści na stronie. Aby rozpocząć, najpierw należy zrozumieć podstawowe mechanizmy działania WordPressa oraz to, jak system zarządza treściami. Dzięki temu można lepiej dostosować nowe typy postów do indywidualnych potrzeb strony i jej użytkowników.

Następnie, proces tworzenia własnych typów postów można podzielić na kilka kluczowych etapów. Oto one w formie uporządkowanej listy:

  1. Zainstaluj i aktywuj odpowiedni plugin, taki jak Custom Post Type UI. Ułatwi to znacznie pracę, umożliwiając tworzenie nowych typów postów bez konieczności pisania kodu.
  2. Określ unikalne nazwy dla swoich typów postów, aby łatwo je identyfikować i zarządzać nimi w przyszłości.
  3. Dostosuj ustawienia, takie jak etykiety, wsparcie dla różnych funkcji (np. miniaturki, edytory treści) oraz uprawnienia dostępu, aby spełniały one specyficzne wymagania Twojej strony.

Po zakończeniu tych kroków, własne typy postów będą gotowe do użycia. Niżej znajdziesz szczegółowy opis tworzenia własnych typów postów z różnymi wtyczkami.

Warto pamiętać o regularnym aktualizowaniu i dostosowywaniu ich do zmieniających się potrzeb strony oraz jej użytkowników. Dzięki temu treści będą zawsze dobrze zorganizowane i łatwe do znalezienia, co znacząco poprawi doświadczenie odwiedzających stronę.

Wtyczki do tworzenia własnych typów treści - CPT UI, ACF, Pods

Narzędzia i wtyczki pomocne w tworzeniu własnych typów postów

Przy tworzeniu własnych typów postów na WordPressie, niezbędne okazują się pewne narzędzia i wtyczki, które znacząco ułatwiają ten proces. Advanced Custom Fields (ACF) to jedna z najpopularniejszych wtyczek, umożliwiająca dodawanie niestandardowych pól do postów, stron czy nawet użytkowników. Dzięki niej, można w prosty sposób rozszerzyć funkcjonalność swojej strony bez konieczności pisania skomplikowanego kodu.

Tworzenie własnego typu treści za pomocą ACF

Innym narzędziem, które zasługuje na uwagę, jest Custom Post Type UI. Ta wtyczka pozwala na łatwe tworzenie i zarządzanie własnymi typami postów oraz taksonomiami bez bezpośredniej interwencji w kodzie. Jest to szczególnie przydatne dla osób, które nie czują się na siłach, aby samodzielnie modyfikować pliki tematu.

CPT UI wygląda na najbardziej zaawansowane narzędzie tego typu ze wszystkich dostępnych, ponieważ pozwala na skonfigurowania niemalże każdego elementu naszego własnego typu treści. Zobacz jak wyglądają ustawienia.

Z kolei dla tych, którzy szukają kompleksowego rozwiązania, Pods może okazać się strzałem w dziesiątkę. Ta wtyczka nie tylko umożliwia tworzenie własnych typów postów i taksonomii, ale także oferuje zaawansowane opcje niestandardowych pól i relacji między nimi.

Dzięki Pods, można skonstruować złożone struktury danych, które idealnie odpowiadają specyficznym potrzebom Twojej strony.

Dodawanie własnego typu treści ze wtyczką pods

Instrukcja dodawania własnego typu treści w ACF

  1. Start: Aby zarejestrować nowy typ postu, przejdź do zakładki ‘ACF‘ > ‘Post Types’ w panelu administracyjnym WordPressa, a następnie kliknij ‘Dodaj nowy’. Zobaczysz ekran z podstawowymi ustawieniami dla nowego typu postu.
  2. Podstawowe ustawienia:
    • Etykieta mnoga: Nazwa typu postu w formie mnogiej, np. “Filmy” lub “Książki”.
    • Etykieta pojedyncza: Nazwa typu postu w formie pojedynczej, np. “Film” lub “Książka”.
    • Klucz typu postu: Jest automatycznie generowany na podstawie wprowadzonej etykiety pojedynczej, ale można go zmodyfikować. Powinien składać się tylko z małych liter, cyfr, podkreśleń i myślników.
  3. Widoczność i dostępność:
    • Ustawienie ‘Publiczny’ kontroluje, czy typ postu jest publiczny czy prywatny. Domyślnie jest włączone, co oznacza, że typ postu jest widoczny w kokpicie i dostępny publicznie na froncie strony.
    • ‘Hierarchiczny’ kontroluje, czy typ postu pozwala na tworzenie relacji rodzic-dziecko między obiektami tego typu, podobnie jak w przypadku stron WordPressa.
  4. Zaawansowana konfiguracja:
    • W zakładce ‘Zaawansowane’ znajdziesz wiele dodatkowych ustawień, które można skonfigurować. ACF domyślnie ich nie wyświetla, ale można je włączyć.
  5. Dodawanie i konfiguracja:
    • W sekcji ‘Obsługi’ możesz zdefiniować, które elementy edytora treści mają być dostępne dla nowego typu postu, takie jak tytuł, wyróżnione obrazy, autor i inne.
    • W zakładce ‘Etykiety’ możesz zdefiniować teksty etykiet używanych dla nowego typu postu w kokpicie.
    • W zakładce ‘Widoczność’ kontrolujesz, jak nowy typ postu jest wyświetlany w kokpicie i na froncie strony.

Opis zaawansowanych ustawień

  1. Ustawienia ogólne:
    • Opis: Możesz dodać opis typu postu, który będzie wyświetlany na liście typów postów w kokpicie.
    • Aktywny: Przełącznik, który pozwala szybko aktywować lub dezaktywować typ postu bez jego usuwania.
  2. Taksonomie powiązane:
    • Możliwość wyboru istniejących taksonomii, które mają być używane do klasyfikacji typu postu, takie jak kategorie czy tagi.
  3. Wsparcie:
    • Definiowanie, które funkcje edycji treści są obsługiwane dla danego typu postu, np. tytuł, wyróżnione obrazy, autor, komentarze, i więcej.
    • Możliwość dodania niestandardowych elementów, aby dostosować edytor do potrzeb Twojej strony.
  4. Etykiety:
    • Możesz zdefiniować lub wygenerować na nowo etykiety dla różnych akcji i widoków związanych z typem postu, takie jak ‘Dodaj nowy’, ‘Edytuj’, ‘Zobacz’ i inne.
  5. Widoczność:
    • Kontrola nad tym, jak typ postu jest wyświetlany w kokpicie oraz na froncie strony, w tym:
      • Pokaż w kokpicie: Kontroluje, czy typ postu jest widoczny i zarządzalny w kokpicie WordPressa.
      • Pokaż w menu administracyjnym: Określa, czy typ postu ma pojawiać się w bocznym menu w kokpicie.
      • Pozycja w menu administracyjnym: Pozwala określić, gdzie w menu administracyjnym pojawi się link do tego typu postu.
      • Ikona menu: Możesz wybrać ikonę dla typu postu, która pojawi się w menu kokpitu.
  6. URL:
    • Ustawienia związane z tym, jak typ postu jest prezentowany w URL-ach, w tym struktura permalinków oraz możliwość dodania prefixu do URL-i.
  7. Strony archiwalne:
    • Kontrola nad tym, czy typ postu ma mieć stronę archiwum, którą można dostosować za pomocą pliku szablonu w motywie.
  8. REST API:
    • Opcje dotyczące integracji typu postu z WordPress REST API, w tym możliwość eksponowania tego typu postu w REST API, co jest wymagane dla korzystania z edytora bloków.
  9. Uprawnienia:
    • Możliwość dostosowania uprawnień dla typu postu, np. możliwość ustawienia specyficznych nazw uprawnień dla tego typu postu, które mogą różnić się od domyślnych uprawnień dla postów.

Rejestrowanie własnych typów treści czy taksonomii we wszystkich narzędziach wygląda bardzo podobnie i pozwala na podobne dostosowanie ich ze względu na możliwości funkcji WordPressa. Z resztą zobacz jak wygląda kod, którym możesz dodać takie typy treści.

Praktyczny przewodnik po kodowaniu własnych typów postów

Tworząc strony internetowe na platformie WordPress, często napotykamy na potrzebę dostosowania jej do specyficznych wymagań projektu. Własne typy postów (Custom Post Types, CPT) stanowią potężne narzędzie, pozwalające na rozszerzenie standardowych możliwości WordPressa o nowe, unikalne typy treści.

Przykładem może być strona dla restauracji, gdzie dodatkowy typ postu ‘Menu’ umożliwi efektywne zarządzanie daniami. Innym przykładem jest portal pracy, gdzie ‘Oferty pracy’ jako własny typ postu ułatwią segregację i wyszukiwanie ogłoszeń. Kluczową kwestią jest odpowiednie zaplanowanie struktury i pól, które będą niezbędne dla danego typu treści. Następnie, za pomocą funkcji register_post_type(), definiujemy nowy typ postu, określając jego właściwości i zachowanie w panelu administracyjnym.

Oto przykład kodu rejestrującego nowy typ treści:

function register_recipe_post_type() {
    $labels = array(
        'name'                  => _x('Przepisy', 'Post type general name', 'textdomain'),
        'singular_name'         => _x('Przepis', 'Post type singular name', 'textdomain'),
        'menu_name'             => _x('Przepisy', 'Admin Menu text', 'textdomain'),
        'name_admin_bar'        => _x('Przepis', 'Add New on Toolbar', 'textdomain'),
        'add_new'               => __('Dodaj nowy', 'textdomain'),
        'add_new_item'          => __('Dodaj nowy przepis', 'textdomain'),
        'new_item'              => __('Nowy przepis', 'textdomain'),
        'edit_item'             => __('Edytuj przepis', 'textdomain'),
        'view_item'             => __('Zobacz przepis', 'textdomain'),
        'all_items'             => __('Wszystkie przepisy', 'textdomain'),
        'search_items'          => __('Szukaj przepisów', 'textdomain'),
        'parent_item_colon'     => __('Rodzic przepisów:', 'textdomain'),
        'not_found'             => __('Nie znaleziono przepisów.', 'textdomain'),
        'not_found_in_trash'    => __('Nie znaleziono przepisów w koszu.', 'textdomain'),
        'featured_image'        => _x('Zdjęcie przepisu', 'Overrides the “Featured Image” phrase for this post type.', 'textdomain'),
        'set_featured_image'    => _x('Ustaw zdjęcie przepisu', 'Overrides the “Set featured image” phrase for this post type.', 'textdomain'),
        'remove_featured_image' => _x('Usuń zdjęcie przepisu', 'Overrides the “Remove featured image” phrase for this post type.', 'textdomain'),
        'use_featured_image'    => _x('Użyj jako zdjęcie przepisu', 'Overrides the “Use as featured image” phrase for this post type.', 'textdomain'),
        'archives'              => _x('Archiwum przepisów', 'The post type archive label used in nav menus.', 'textdomain'),
        'insert_into_item'      => _x('Wstaw do przepisu', 'Overrides the “Insert into post”/“Insert into page” phrase (used when inserting media into a post).', 'textdomain'),
        'uploaded_to_this_item' => _x('Przesłane do tego przepisu', 'Overrides the “Uploaded to this post”/“Uploaded to this page” phrase (used when viewing media in the library).', 'textdomain'),
        'filter_items_list'     => _x('Filtruj listę przepisów', 'Screen reader text for the filter links heading on the admin page.', 'textdomain'),
        'items_list_navigation' => _x('Nawigacja listy przepisów', 'Screen reader text for the pagination heading on the admin page.', 'textdomain'),
        'items_list'            => _x('Lista przepisów', 'Screen reader text for the items list heading on the admin page.', 'textdomain'),
    );

    $args = array(
        'labels'             => $labels,
        'public'             => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array('slug' => 'przepis'),
        'capability_type'    => 'post',
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => null,
        'supports'           => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments'),
        'show_in_rest'       => true,  // Umożliwia wsparcie dla edytora bloków (Gutenberg).
    );

    register_post_type('przepis', $args);
}

add_action('init', 'register_recipe_post_type');

Opis funkcji:

  • Labels: Zestaw etykiet dla różnych tekstów, które WordPress używa do opisu typu postu w panelu administracyjnym.
  • Args:
    • public: Ustawienie na true sprawia, że posty są publicznie dostępne.
    • show_ui: Włącza interfejs użytkownika w panelu administracyjnym.
    • rewrite: Określa slug, który będzie używany w URL-ach.
    • capability_type: Określa typ uprawnień, ‘post’ w tym przypadku, co oznacza, że dla tych postów będą używane standardowe uprawnienia dla postów.
    • has_archive: Umożliwia archiwizację postów tego typu.
    • supports: Określa, jakie funkcje edytora będą dostępne dla tego typu postu (np. miniatury, komentarze).
    • show_in_rest: Ustawienie na true aktywuje wsparcie dla REST API i nowego edytora bloków Gutenberg.

Dodając ten kod do swojego motywu, zarejestrujesz nowy typ postu “Przepisy”, który będzie miał odpowiednie interfejsy w panelu administracyjnym i będzie dostosowany do potrzeb publikacji przepisów.

Rozszerzanie funkcjonalności WordPress za pomocą własnych typów postów

Integracja własnych typów postów w WordPressie otwiera przed użytkownikami nowe możliwości personalizacji i organizacji treści. Dzięki temu rozwiązaniu, można nie tylko lepiej dostosować strukturę witryny do specyficznych potrzeb, ale również zwiększyć jej funkcjonalność.

Przykładowo, dla witryn o tematyce kulinarnej, można stworzyć typ postu „Przepisy”, co ułatwi zarządzanie i prezentację takich treści. Podobnie, serwisy zajmujące się recenzowaniem książek mogą korzystać z typu postu „Recenzje”, aby oddzielić te materiały od standardowych wpisów blogowych.

Implementacja własnych typów postów wymaga pewnej wiedzy technicznej, jednak korzyści płynące z ich wykorzystania są nie do przecenienia. Oto kilka kluczowych zalet:

  • Zwiększenie przejrzystości i łatwości nawigacji po witrynie.
  • Możliwość lepszego dostosowania SEO dla specyficznych typów treści.
  • Ułatwienie zarządzania treścią dzięki segregacji na różne typy postów.

Dzięki tym zaletom, strony internetowe stają się bardziej intuicyjne dla użytkowników i lepiej zoptymalizowane pod kątem wyszukiwarek internetowych.

Źródła:

Często zadawane pytania dotyczące własnych typów treści

Własny typ treści to sposób na rozszerzenie standardowych możliwości WordPressa o nowe rodzaje zawartości. Umożliwia to tworzenie i zarządzanie danymi, które nie pasują do standardowych kategorii postów czy stron, np. produkty, recenzje, projekty, itp.

Własne typy treści pozwalają na lepszą organizację i strukturę witryny, co jest szczególnie ważne w przypadku bardziej złożonych projektów internetowych. Ułatwiają zarządzanie specyficznymi rodzajami danych i mogą być dostosowane do konkretnych potrzeb użytkownika lub biznesu.

Choć tworzenie własnych typów treści z poziomu kodu wymaga pewnej znajomości PHP i WordPress API, istnieją wtyczki takie jak Advanced Custom Fields (ACF) czy Custom Post Type UI, które umożliwiają łatwe tworzenie i zarządzanie nimi bez pisania kodu.

Własne typy treści można wyświetlić za pomocą odpowiednich zapytań WP_Query w plikach motywu, używając szablonów dedykowanych dla danego typu postu, lub poprzez dodanie ich do menu nawigacji, jeśli wtyczka lub kod CPT to wspiera. Mechanizmy WordPressa pozwalają na domyślne wyświetlanie własnych typów treści tak jak wpisy blogowe.

Tak, można przypisać standardowe kategorie i tagi do własnych typów treści lub utworzyć własne taksonomie, które będą działać analogicznie, ale będą przeznaczone wyłącznie dla określonych typów treści. W ten sposób unikniesz mieszania postów różnych typów na stronach np.: kategorii czy tagów.

Możesz kontrolować dostęp do różnych funkcji własnych typów treści za pomocą ról użytkowników i specyficznych dla typu postu uprawnień, takich jak edytowanie postów, publikowanie postów, czy czytanie prywatnych postów.

Tak, własne typy treści można udostępnić w REST API WordPressa. Większość nowoczesnych wtyczek do zarządzania CPT oferuje opcje, które pozwalają określić, czy dany typ treści ma być dostępny przez REST API.

Własne typy treści można dezaktywować lub całkowicie usunąć za pomocą funkcji w wtyczce lub kodu, który był użyty do ich rejestracji. Ważne jest, aby pamiętać o wykonaniu kopii zapasowej danych przed usunięciem typu treści, aby uniknąć utraty ważnych informacji.

Tworząc własny typ postu z pomocą ACF możesz skorzystać z zestawu ikon WordPressa – https://developer.wordpress.org/resource/dashicons/. W innym wypadku musisz skorzystać z dodatkowego argumentu w funkcji dodającej własny typ treści i wrzucić plik graficzny do folderu wtyczki / motywu lub po prostu podać ścieżkę dostępową z biblioteki mediów przykład linijki kodu:

Własne typy treści (Custom Post Types, CPT) w WordPressie są niezwykle przydatne w różnych typach projektów, szczególnie gdy standardowe posty i strony nie wystarczają do spełnienia potrzeb użytkowników. Oto kilka typów i przykładów projektów:

  • sklepy internetowe tworzone bez woocommerce z zewnętrznym koszykiem. Przykłady postów: Produkty, Recenzje, Promocje
  • strony edukacyjne tworzone bez LMS. Przykłady postów: Kursy, Lekcje, Testy
  • strony z ogłoszeniami / z przepisami / z książkami
  • strony dla biur nieruchomości. Przykłady postów: Oferty nieruchomości, Agenci, Opinie klientów

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *