PORADNIK

Wpisy własnego typu – tworzenie listy z custom post type

W tym artykule dowiesz się jak stworzyć listę zawierającego wpisy typu custom post. W przypadku, gdy mamy zbiór wpisów danego typu i chcielibyśmy stworzyć widok listy wyświetlającej wszystkie post’y potrzebne jest stworzenie pliku, który by to obsłużył. Będziemy bazować na stworzonym wcześniej artykule Advanced Custom Fields – własne typy pól WordPress, w którym dodaliśmy wpisy własnego typu: Projekt. Na bazie tych projektów chcielibyśmy utworzyć listę projektów, która odpowiednio wyświetlałaby: Tytuł projektu, krótki opis projektu, obraz wyróżniający.

Wpisy typu custom post – jak stworzyć listę z wpisami własnego typu ?

Zaczynamy tworzenie listy wpisów custom post

Pierwszym krokiem jest edycja naszego Custom Post Type Projekt. Przejdźmy do zakładki CPT UI w panelu WordPress. Wybierzmy nasz typ posta Projekt i szukajmy rubryki: Has Archive. Zmieńmy wartość na true oraz ustawmy url – ”projekty”.

 

Po zatwierdzeniu zmiany w naszym typie post’a Projekt, wejdźmy do folderu naszego motywu – w naszym przypadku wp_tutorial i znajdźmy plik archive.php. Plik ten odpowiada, za wyświetlanie zbioru podstawowych wpisów WordPress. Aby stworzyć widok listy wpisów własnego typu postępujemy analogicznie jak w artykule Tworzymy widok (template) dla custom post w WordPress. Kopiujemy plik archive.php i dopisujemy Custom Post Type Slug: archive-projekt.php.

Przechodzimy do edycji pliku archive-projekt.php. Domyślnie kod oraz widok prezentują się w następujący sposób:

Wpisy własnego typu - lista wpisów custom post type

Chcielibyśmy aby w naszym widoku pojawiły się:

  • napis, który informuje o tym, że jest to zbiór projektów,
  • tytuł projektu,
  • krótki opis,
  • obraz wyróżniający.

Reszta elementów jest zbędnie wyświetlana więc należy je usunąć. Przechodzimy do edycji kodu. Usuwamy tytuł archiwum oraz jego opis i zastępujemy go własnym tytułem: Zbiór Projektów. Musimy też zmienić, aby pobierało widok z pliku content-projekty.php zmieniając ścieżkę ‘template-part/content’ na ‘template-part/content-projekty’.


Przechodzimy do folderu /template-parts wybieramy plik content.php kopiujemy i zmieniamy nazwę kopii na content-projekty.php. Przechodzimy do edycji pliku.

Usuwamy niepotrzebne sekcje:

  • entry-meta– należy usunąć całą sekcję if wyświetlającą sekcję
  • the_content– usuwamy cały blok wyświetlający content
  • wp_link_pages– usuwamy funkcję wyświetlającą
  • entry-footer– usuwamy stopkę artykułu

Nasz kod po redukcji:

Przechodzimy do poprawnego wyświetlenia listy. Chcemy aby obraz wyświetlał się na końcu pojedynczego artykułu, w tym celu przesuwamy wp_tutorial_post_thumbnail() przed końcem tag’u< /article>‘. W sekcji entry-content dodajemy wyświetlanie krótkiego opisu projektu za pomocą funkcji the_excerpt().

Otrzymaliśmy następujący widok listy projektów.

Podsumowanie

Stworzenie widoku dla listy postów własnego typu jest podobne do tworzenia template dla pojedynczego custom post’a. Analogicznie tworzymy plik archive.php, natomiast samo wyświetlanie odbywa się nieco inaczej. Przypisujemy odpowiedni template-part dla wyświetlania pojedynczego post’a w liście. Możemy stosować różne wariacje wyświetlania zbioru Custom Post‘ów, może być to tak jak w tym przypadku listy, może być to bardziej złożony i skomplikowany widok.