✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Twórz niestandardowe typy postów i niestandardowe taksonomie w WordPress według kodu

10

To jest samouczek dotyczący tworzenia niestandardowego typu postu i niestandardowej taksonomii w WordPress według kodu. Przyjrzymy się typowym pułapkom i argumentom, których należy użyć, aby stworzyć minimalną, ale wystarczającą kreację. Pełny przykład dołączony na końcu.

Gdzie dodać kod?

Tworzenie niestandardowych typów postów (CPT) i niestandardowych taksonomii w WordPressie można wykonać w functions.phppliku motywu lub w wtyczce. Pamiętaj, że niestandardowy typ postu i niestandardowa taksonomia znikną, jeśli zmienisz motyw lub dezaktywujesz wtyczkę. Można więc tymczasowo usunąć rejestrację CPT z motywu i przenieść ją do wtyczki — o ile zachowasz ten sam niestandardowy typ postu lub identyfikator taksonomii slug/ID.

Do tworzenia (i modyfikowania) CPT lub taksonomii zawsze używaj hooka init. Umieszczenie go w korzeniu functions.php(poza hakiem) lub innym haczyku spowoduje problemy.

Tworzenie niestandardowego typu postu

Do tworzenia niestandardowego typu posta używasz register_post_typefunkcji. Przyjmuje dwa parametry; po pierwsze identyfikator typu postu, a po drugie tablica ze wszystkimi argumentami.

Identyfikator typu postu to nazwa wersji slugu typu posta. Na przykład posty i strony wbudowane w WordPress są oznaczone jako „ post" i „ page“. Identyfikator musi być unikalny, musi być zgodny z zestawem reguł (małe litery, bez spacji itp.) i nie może być jednym z zastrzeżonych slug WordPressa.

Nauczyłem się tego, że są minimalnymi, ale całkowicie wystarczającymi argumentami do zarejestrowania typu postu; biorąc pod uwagę, że jest to normalny publiczny CPT i chcesz zastąpić wszelkie etykiety z napisem „post” lub „strona” rzeczywistą nazwą CPT:

Przegląd argumentów

Pamiętaj, że niektóre argumenty dziedziczą wartości z innych argumentów. O ile nie są wyraźnie ustawione, mogą domyślnie przyjmować tę samą wartość lub przeciwnie do innej. Kilka argumentów dziedziczy tę samą lub przeciwną wartość argumentu public. Przeczytaj dokumentację, aby zobaczyć, jaka jest wartość domyślna dla każdego argumentu i czy musisz ją zastąpić.

Jeśli nie masz nic przeciwko posiadaniu w admin tekstów, które odnoszą się do twojego typu postu jako „post” lub „strona”, możesz pominąć definiowanie argumentów etykiet. Prawdopodobnie wystarczy tylko label(nazwa w liczbie mnogiej) i tylko wewnątrz labelstablicy singular_name(nazwa w liczbie pojedynczej).

Jeśli nie ustawisz jawnie show_in_restwartości true, Twój niestandardowy typ pozycji będzie używał starego klasycznego edytora. Jeśli chcesz używać edytora Gutenberg do niestandardowego typu postu, musisz ustawić wartość show_in_resttrue.

Argument supportsmówi, które elementy są dostępne podczas edycji wpisu w Twoim typie wpisu. Jako minimum prawdopodobnie potrzebujesz tytułu, edytora i polecanego obrazu posta.

Argument rewritez minimum elementu tablicy slugmówi WordPressowi, aby przepisał wszystkie pojedyncze posty Twojego typu postu, aby użyć tego przedrostka. W powyższym przykładzie pojedynczy wpis książki otrzyma adres URL podobny do; „ http://example.com/książka/i-robot/ “. Jeśli interesuje Cię, jak dodać ustawienie reguły permalink w admin, aby umożliwić użytkownikom motywu samodzielne decydowanie o tym slugu, spójrz na ten post.

Argumentem ikony menu (menu_icon) może być dowolny z następujących Dashicons lub możesz pozostawić go pustym, aby zachować wartość domyślną. Domyślnie jest to ta sama ikona co Posty. Dobrym pomysłem jest jednak wyraźne oddzielenie niestandardowych typów postów.

Pozycja menu (menu_position) pozwala określić pozycję niestandardowego typu postu w menu administratora. Dokumentacja zawiera listę wszystkich pozycji menu administratora, dzięki czemu można dostosować; pozycja 5 znajduje się zaraz po „postach”.

Jest jeszcze jeden argument (taxonomies) przemawiający za dołączeniem taksonomii do typu postu. W dalszej części tego postu omówimy, jak dodać niestandardową taksonomię. Aby dodać taksonomie do typu postu, dodaj ten argument do powyższej tablicy;

Uwaga o permalinkach i błędach 404 nie znaleziono

Po dodaniu kodu do rejestracji niestandardowego typu posta zauważysz, że wyświetlenie pojedynczego posta zwróci błąd „404 nie znaleziono”. Dzieje się tak, ponieważ musisz „odświeżyć permalinki”.

Przejdź do Ustawienia> Permalinki i po prostu kliknij przycisk „Zapisz zmiany” (nie musisz niczego zmieniać).

Pamiętaj, że za każdym razem, gdy zmienisz rewriteatrybut, będziesz musiał ponownie odświeżyć permalinki.

Tworzenie niestandardowej taksonomii

Niestandardową taksonomię można dołączyć do jednego z typów postów WordPress (posty, strony) lub do niestandardowego typu postów. Możesz również dołączyć wiele taksonomii do typu posta. Kiedy rejestrujesz taksonomię, musisz podać typ stanowiska, do którego ma być dołączona.

Taksonomia może być hierarchiczna (jak kategorie postów, w których można utworzyć strukturę opartą na drzewie) lub opartą na znacznikach (takich jak tagi postów). To naprawdę jedyna kwestia, którą musisz wiedzieć wcześniej, z wyjątkiem jego identyfikatora slug. Podobnie jak w przypadku CPT, identyfikator identyfikujący taksonomię musi być unikalny i zgodny z zestawem reguł.

Do rejestracji niestandardowej taksonomii służy register_taxonomyfunkcja. Akceptuje register_taxonomyunikalny identyfikator taksonomii slug jako pierwszy argument, tablicę typów postów do dołączenia jako drugi, a na końcu tablicę ze wszystkimi pozostałymi argumentami. Jest wiele argumentów, ale to, czego doświadczyłem, jest minimalnym, ale wystarczającym do zarejestrowania niestandardowej taksonomii (to dodaje taksonomię typu tag/niehierarchiczną):

Zaleca się dodanie wywołania funkcji zaraz po register_taxonomy, aby upewnić się, że zostanie poprawnie „dołączona” do CPT: register_taxonomy_for_object_type. Zdefiniuj swoją taksonomię jako pierwszy argument, a CPT jako drugi:

register_taxonomy_for_object_type('book_author', 'book');

Podobnie jak powyższy typ post, register_taxonomyakceptuje znacznie więcej argumentów, a wiele z nich dziedziczy lub zależy od wartości innych argumentów. Przeczytaj dokumentację, aby zobaczyć, jaka jest wartość domyślna dla każdego argumentu i czy musisz ją zastąpić.

Przegląd argumentów

Jeśli nie masz nic przeciwko posiadaniu tekstów, które odnoszą się do Twojej taksonomii jako „tag” (jeśli hierarchiczna jest fałszywa) lub „kategoria” (jeśli hierarchiczna jest prawdziwa), prawdopodobnie możesz pominąć całą labelstablicę z wyjątkiem być może singular_name.

Jest show_admin_columnto przydatne przy dodawaniu kolumny pokazującej powiązane terminy w Twojej taksonomii na ekranie administratora CPT. Podobnie jak w Postach, widzisz kolumnę pokazującą powiązane kategorie. Ten argument jest domyślnie ustawiony na false(nie pokazuj kolumny), więc lubię go zastąpić.

Ustawienie show_in_restna true jest konieczne, aby Twoja taksonomia była widoczna w edycji postu w edytorze Gutenberg, ponieważ Gutenberg opiera się na interfejsie API REST.

Podobnie jak w przypadku niestandardowych typów postów, prawdopodobnie otrzymasz błędy „404 nie znaleziono” w niestandardowej taksonomii. Przejdź do Ustawienia> Permalinki i po prostu kliknij przycisk "Zapisz zmiany".

Pełny przykładowy kod

Oto pełny przykład tworzenia CPT dla książek i dołączania dwóch niestandardowych taksonomii; gatunek (hierarchiczny) i autor książki (tag).

Źródło nagrywania: awhitepixel.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów