Jak programowo utworzyć niestandardowy typ posta WordPress?

Opublikowany: 2021-10-05

Czy chcesz publikować niestandardowe typy postów w swojej witrynie? Jesteśmy z Tobą. W tym przewodniku nauczymy Cię, jak programowo tworzyć niestandardowe typy postów WordPress za pomocą odrobiny kodu.

Początkowo WordPress został stworzony do publikowania postów. Jednak po tylu latach WordPress to znacznie więcej niż platforma do publikowania postów. Obecnie jest to najbardziej kompletne rozwiązanie internetowe, które obsługuje prawie 40% wszystkich stron internetowych.

Mimo że zawiera wiele funkcji, publikowanie postów jest nadal jednym z najlepszych sposobów na przyciągnięcie użytkowników do Twojej witryny i utrzymanie ich zaangażowania. WordPress oferuje domyślne typy postów, ale jeśli chcesz dostosować swoją witrynę i sprawić, by wyróżniała się na tle konkurencji, dobrym rozwiązaniem może być tworzenie niestandardowych typów postów.

W tym samouczku pokażemy, jak programowo tworzyć i publikować niestandardowe typy postów WordPress . Zanim przejdziemy do tego, lepiej zrozumiemy, czym dokładnie są niestandardowe typy postów i kiedy należy ich używać.

Co to jest niestandardowy typ posta?

Niestandardowe typy postów to rodzaje treści. WordPress domyślnie zawiera kilka typów postów. Posty i strony są najbardziej znane, ale są też inne:

  • Posty
  • Strony
  • Załączniki
  • Menu nawigacyjne
  • Rewizje
  • Dostosowany CSS
  • Zestawy zmian

Większość użytkowników używa pierwszych pięciu typów, ale są też inne typy. Właściwie prawdopodobnie używasz niektórych z nich, nie wiedząc, że są to niestandardowe typy postów.

Najlepszym przykładem niestandardowego typu posta są produkty WooCommerce. Kiedy aktywujesz WooCommerce po raz pierwszy, wtyczka tworzy niestandardowy typ posta o nazwie „Produkty”. Gdy zaczniesz tworzyć produkty, są one publikowane jako typ postu o produkcie, zawierający wszystkie ulepszenia oferowane przez WooCommerce.

Mimo że te typy postów nie są nazywane niestandardowymi, możesz tworzyć swoje typy postów w taki sam sposób, jak robi to WooCommerce i nadać im żądaną nazwę. Na przykład wydarzenia, wykazy, harmonogramy, lekcje, portfolio i profile mogą być nazwami typów postów, które będą przydatne dla określonych witryn.

Podsumowując, niestandardowe typy postów to nowy rodzaj postów , które użytkownicy mogą tworzyć zgodnie z określonymi wymaganiami, aby dostosować swoją witrynę.

Dlaczego i kiedy należy używać niestandardowego typu posta?

Niestandardowe typy postów (CPT) mogą się bardzo różnić w zależności od tego, jak są zbudowane, dzięki czemu można ich używać do osiągania wszelkiego rodzaju rozwiązań.

Możesz użyć niestandardowych typów postów, gdy:

  • Zamierzasz regularnie publikować określone informacje, których nie możesz publikować przy użyciu domyślnego typu postów
  • Potrzebujesz odróżnić określony typ postów od standardowych
  • Potrzebujesz zmienić zachowanie niektórych typów postów
  • Chcesz dostosować funkcje postu, proces publikowania i elementy lub zastosować do nich jakąś specjalną funkcję?

Zasadniczo powinieneś używać CPT w witrynie WordPress, gdy potrzebujesz różnego rodzaju postów z ich funkcjami lub niestandardowym zachowaniem.

Niestandardowe typy postów różnią się od domyślnych typów postów, dlatego wymagają specjalnego traktowania bez konieczności nadpisywania domyślnych funkcji typu postów. Jest to duża zaleta, gdy potrzebujesz różnych typów postów, ponieważ możesz stworzyć od podstaw niestandardowy typ posta, który dokładnie spełni Twoje wymagania.

Teraz, gdy lepiej rozumiemy, czym one są i kiedy ich używać, zobaczmy, jak tworzyć niestandardowe typy postów.

Jak programowo utworzyć niestandardowy typ posta WordPress?

W tej sekcji pokażemy, jak utworzyć niestandardowy typ wpisu w WordPressie na przykładzie. Zanim zaczniesz, upewnij się, że wykonałeś kopię zapasową swojej witryny i utwórz motyw podrzędny, jeśli jeszcze go nie masz.

W swoim panelu przejdź do Wygląd > Edytor motywów , otwórz plik functions.php motywu potomnego w prawej kolumnie i wklej następujący skrypt. Zarejestruje niestandardowy typ postu o nazwie filmy .

 function QuadLayers_custom_post_type() {
// Ustaw etykiety interfejsu użytkownika dla niestandardowego typu postu
    $etykiety = tablica(
        'name' => _x( 'Filmy', 'Ogólna nazwa typu posta', 'storefront' ),
        'singular_name' => _x( 'Film', 'Pojedyncza nazwa typu posta', 'storefront' ),
        'menu_name' => __( 'Filmy', 'sklep' ),
        'parent_item_colon' => __( 'Film nadrzędny', 'storefront' ),
        'all_items' => __( 'Wszystkie filmy', 'storefront' ),
        'view_item' => __( 'Wyświetl film', 'storefront' ),
        'add_new_item' => __( 'Dodaj nowy film', 'storefront' ),
        'add_new' => __( 'Dodaj nowy', 'sklep' ),
        'edit_item' => __( 'Edytuj film', 'storefront' ),
        'update_item' => __( 'Aktualizuj film', 'storefront' ),
        'search_items' => __( 'Wyszukaj film', 'storefront' ),
        'not_found' => __( 'Nie znaleziono', 'storefront' ),
        'not_found_in_trash' => __( 'Nie znaleziono w Koszu', 'storefront' ),
    );
// Ustaw inne opcje dla niestandardowego typu postu
    $argumenty = tablica(
        'label' => __( 'filmy', 'sklep' ),
        'description' => __( 'Wiadomości i recenzje filmowe', 'storefront' ),
        'etykiety' => $etykiety,  
        'supports' => array( 'title', 'editor', 'excerpt', 'autor', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),     
        'taksonomie' => array( 'gatunki' ),     
        'hierarchiczna' => fałsz,
        'publiczny' => prawda,
        'show_ui' => prawda,
        'show_in_menu' => prawda,
        'show_in_nav_menus' => prawda,
        'show_in_admin_bar' => prawda,
        'pozycja_menu' => 5,
        'can_export' => prawda,
        'has_archive' => prawda,
        'exclude_from_search' => fałsz,
        'publicly_queryable' => prawda,
        'capability_type' => 'publikuj',
        'show_in_rest' => prawda, 
    );
    // Rejestracja niestandardowego typu postu
    register_post_type( 'filmy', $args );
}
add_action( 'init', 'QuadLayers_custom_post_type', 0 );

Po wklejeniu kodu na pulpicie administratora WordPress pojawi się nowa karta o nazwie Filmy .
Programowe tworzenie niestandardowego typu posta

Jeśli go otworzysz, zobaczysz, że edytor postów jest taki sam, jak domyślne typy postów, ponieważ ustawiliśmy te same argumenty dla ekranu edytora postów. Skąd więc wiemy, że jest to niestandardowy edytor typu postów? Ponieważ w adresie URL i tytule strony możesz zobaczyć typ postu Filmy.

Dodaj niestandardowy typ posta

Teraz, gdy zobaczyłeś wynik końcowy, przeanalizujmy kod, abyś mógł lepiej zrozumieć, co robi każda sekcja.

Wyjaśnienie kodu

Właśnie widzieliśmy, jak programowo utworzyć niestandardowy typ wpisu WordPress. Ale to tylko połowa tego, co musisz wiedzieć. Jeśli chcesz tworzyć własne typy postów, musisz dostosować kod. W tym celu musisz zrozumieć, co robi każda część fragmentu.

Używamy wp_init() , aby upewnić się, że nasza funkcja zostanie uruchomiona jednorazowo: podczas inicjowania WordPressa. W naszej funkcji QuadLayers_custom_post_type() są trzy części.

1) Etykiety

Jest to zestaw ciągów znaków, których motyw będzie używał na różnych stronach administracyjnych i frontendowych. Jest to ustawione na jednej tablicy:

$labels = array(
'name' => _x( 'Movies', 'Post Type General Name', 'storefront' ),
);

2) Opcje

Oto kilka predefiniowanych opcji, które definiują zachowanie i kilka innych funkcji naszego niestandardowego typu postu ( filmy ).

Każda opcja to konkretna instrukcja, która określi, jak będzie działać nasz niestandardowy typ postu. Najważniejsze z nich to:

  • 'supports': określa, które komponenty będą używane w edytorze postów
  • „taksonomie”: możesz zastosować jedną lub więcej istniejących kategorii lub kategorii niestandardowych do wszystkich CPT zarejestrowanych w bieżącej funkcji
  • ' 'hierarchiczny' : posty nie mogą mieć treści nadrzędnej, co odróżnia CPT od stron. Ustaw to na true, jeśli chcesz opublikować niestandardową stronę zamiast niestandardowego typu postu
  • ' show_in_admin_bar': Wyświetla kartę CPT na pulpicie administratora WordPress

Pełną listę wszystkich argumentów i ich opis znajdziesz w tej dokumentacji.

3) Rejestracja niestandardowego typu postu

Funkcja register_post_type() w WordPressie w końcu zarejestruje nasz nowy niestandardowy typ posta i ustawi go tak, aby był gotowy do użycia.

Teraz lepiej rozumiesz kod, możesz zacząć publikować niestandardowe typy postów. Ale oprócz ich publikowania, będziesz chciał gdzieś wyświetlić swój CPT. Zobaczmy, jak to zrobić.

Jak wyświetlać niestandardowe typy postów w WordPress

Do tej pory widzieliśmy, jak programowo utworzyć niestandardowy typ posta w WordPress. Po opublikowaniu musisz zdecydować, gdzie chcesz je wyświetlić.

Istnieje kilka sposobów drukowania CPT na interfejsie użytkownika. Możesz wyświetlić pełną listę określonych niestandardowych typów postów na innym poście, stronie, pasku bocznym lub w dowolnym innym miejscu.

W poniższym przykładowym skrypcie stworzymy niestandardowy shortcode, aby wyświetlić wszystkie niestandardowe typy postów, które stworzyliśmy przy użyciu poprzedniej funkcji na nowej stronie.

Poniższy skrypt utworzy krótki kod o nazwie Movies , który wydrukuje wszystkie filmy, które dodamy do naszego CPT na dowolnej stronie, na której dodamy krótki kod.

 add_shortcode('filmy', 'QuadLayers_display_cpt_shortcode');
funkcja QuadLayers_display_cpt_shortcode(){
    $args = array( 'post_type' => 'movies', 'posts_per_page' => 10 );
    $the_query = nowe WP_Query( $args );
    if ( $the_query->have_posts() ):
    while ( $the_query->have_posts() ): $the_query->the_post();
    $c= the_title( sprintf( '<h2 class="entry-title">', esc_url( get_the_title() ) ), '</h2>').
    '<div class="entry-content">'.
    Treść().
    '</div>';
koniec;
wp_reset_postdata();
w przeciwnym razie:
$c = 'Przepraszamy, żaden post nie spełnia twoich kryteriów.';
endif;
zwróć $c;
}

Więc jeśli umieścisz shortcode na stronie:

shortcode do wyświetlenia CTP

Zobaczysz wynik:

niestandardowy typ postu z shortcode

Wniosek

Podsumowując, zauważyliśmy, że WordPress domyślnie zawiera niektóre typy postów, ale możesz dodać niestandardowe typy postów w zależności od wymagań, aby dostosować swoją witrynę.

W tym przewodniku pokazaliśmy, jak możesz programowo utworzyć niestandardowy typ wpisu WordPress. Przeanalizowaliśmy fragment i opisaliśmy każdą sekcję, dzięki czemu możesz go dostosować i używać w swojej witrynie. Ponadto widzieliśmy, jak utworzyć niestandardowy krótki kod, który pozwala wyświetlać niestandardowe typy postów w dowolnym miejscu w witrynie.

Czy próbowałeś tworzyć niestandardowe typy postów w swojej witrynie? Daj nam znać o swoich doświadczeniach w sekcji komentarzy.

Aby dostosować inne obszary witryny, zapoznaj się z następującymi samouczkami:

  • Jak dodać niestandardowe pola przesyłania do WooCommerce?
  • Jak dodać niestandardowe pola do kasy
  • Przewodnik po edycji pól kasy WooCommerce