Jak stworzyć niestandardową taksonomię
Opublikowany: 2016-09-07To drugi artykuł z trzyczęściowej serii poświęconej niestandardowym typom postów (CPT). Tematy poruszane w dwóch pozostałych artykułach to:
- Niestandardowe typy postów i jak je tworzyć
- Wyświetlanie niestandardowych typów postów – szablony i zapytania
W tym poście na blogu przyjrzymy się, jak utworzyć niestandardową taksonomię i jak połączyć ją z niestandardowym typem posta.
Czym jest taksonomia niestandardowa?
Zacznijmy od tego, czym jest taksonomia? Podoba mi się oficjalna definicja WordPressa: taksonomia to sposób na grupowanie rzeczy.
WordPress ma 4 domyślne taksonomie: Kategoria, Tag, Kategoria linków i Formaty postów. Zdecydowanie najczęściej używanymi z czterech są kategorie i tagi. Taksonomia kategorii umożliwia grupowanie postów w logiczne kategorie, które możesz zdefiniować samodzielnie. Taksonomia znaczników jest bardzo podobna, ale można jej używać swobodniej. Pojedyncza grupa w taksonomii nazywana jest terminem. Każda taksonomia ma również swoją stronę „indeks”, na której wyświetlane są wszystkie posty z tym samym terminem (adresy URL tych stron wyglądają tak: 'taksonomia/term' ).
Tak więc niestandardowa taksonomia jest właśnie tym, co sugeruje nazwa, jest to Twoja własna niestandardowa grupa postów (lub niestandardowe typy postów). Gdybyśmy mieli recenzję książki jako niestandardowy typ posta, dobrym przykładem niestandardowej taksonomii byłyby gatunki książek.
Wystarczy odświeżyć pamięć: W poprzednim artykule o niestandardowych typach postów użyliśmy przykładowego CPT referencji dla naszego motywu Shaka, więc będziemy go nadal używać również tutaj.
Mamy więc niestandardowy typ postu Referencje. Jakich niestandardowych taksonomii chcielibyśmy? Które grupy miałyby sens w tym przypadku użycia? Moglibyśmy pogrupować referencje na podstawie usługi, do której się odnosili. Moglibyśmy więc mieć niestandardową taksonomię usług (surfing, kitesurfing, nurkowanie). Inną niestandardową taksonomią mogą być lokalizacje, w których użytkownicy doświadczyli tej usługi i tak dalej.
Możesz utworzyć niestandardową taksonomię dla każdej grupy logicznej, o której możesz pomyśleć.
Jak stworzyć niestandardową taksonomię?
Podobnie jak w przypadku niestandardowych typów postów, istnieją dwa sposoby zarejestrowania niestandardowej taksonomii. Możesz go stworzyć za pomocą wtyczki lub napisać trochę kodu PHP.
Powody i przypadki użycia, kiedy należy to zrobić za pomocą wtyczki lub kodu, są takie same jak w przypadku CPT, więc sprawdź to w pierwszym artykule.
Tutaj przyjrzymy się tylko, jak utworzyć niestandardową taksonomię i jak połączyć ją z niestandardowym typem posta.
Stwórz własną taksonomię za pomocą wtyczki – w prosty sposób
Użyjemy wtyczki Custom Post Type UI , aby zarejestrować niestandardową taksonomię, tak jak zrobiliśmy to dla CPT w poprzednim artykule:
- Zainstaluj i aktywuj wtyczkę Custom Post Type UI z pulpitu nawigacyjnego wp-admin,
- Po aktywacji wtyczki, pozycja menu administracyjnego CPT UI będzie dostępna . Przejdź do CPT UI -> Dodaj/edytuj taksonomię
- Wprowadź nazwę taksonomii, liczbę mnogą i liczbę pojedynczą, a następnie musisz wybrać typ posta, do którego dołączysz tę nowo utworzoną niestandardową taksonomię (inne domyślne ustawienia są w porządku). W naszym przypadku nazwaliśmy naszą taksonomię niestandardową: testimonial_service i dołączyliśmy ją do typu postu niestandardowego referencji, który zarejestrowaliśmy w poprzednim artykule:
- Jeśli teraz spojrzymy na ekran tworzenia nowego niestandardowego typu postu z referencjami, po prawej stronie zobaczysz metabox Usługi referencji, a po lewej również element podmenu:
- To wszystko, możemy teraz dodać nowe usługi , które grupują referencje na podstawie usług, do których się odnoszą.
Ręczne tworzenie niestandardowej taksonomii – związane z kodowaniem
Tak, tytuł mówi o zaangażowaniu w kodowanie, ale to nieprawda

Możesz użyć generatora kodu WP do wygenerowania niestandardowego kodu taksonomii. Po prostu kliknij zakładki u góry i wprowadź szczegóły swojej niestandardowej taksonomii. Generator wygeneruje prawidłowy kod rejestracji taksonomii niestandardowej:
// Register Custom Taxonomy function custom_taxonomy_testimonial_service() { $labels = array( 'name' => _x( 'Testimonial Services', 'Taxonomy General Name', 'text_domain' ), 'singular_name' => _x( 'Testimonial Service', 'Taxonomy Singular Name', 'text_domain' ), 'menu_name' => __( 'Testimonial Services', 'text_domain' ), 'all_items' => __( 'All Items', 'text_domain' ), 'parent_item' => __( 'Parent Item', 'text_domain' ), 'parent_item_colon' => __( 'Parent Item:', 'text_domain' ), 'new_item_name' => __( 'New Item Name', 'text_domain' ), 'add_new_item' => __( 'Add New Item', 'text_domain' ), 'edit_item' => __( 'Edit Item', 'text_domain' ), 'update_item' => __( 'Update Item', 'text_domain' ), 'view_item' => __( 'View Item', 'text_domain' ), 'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ), 'add_or_remove_items' => __( 'Add or remove items', 'text_domain' ), 'choose_from_most_used' => __( 'Choose from the most used', 'text_domain' ), 'popular_items' => __( 'Popular Items', 'text_domain' ), 'search_items' => __( 'Search Items', 'text_domain' ), 'not_found' => __( 'Not Found', 'text_domain' ), 'no_terms' => __( 'No items', 'text_domain' ), 'items_list' => __( 'Items list', 'text_domain' ), 'items_list_navigation' => __( 'Items list navigation', 'text_domain' ), ); $args = array( 'labels' => $labels, 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, 'show_tagcloud' => true, ); register_taxonomy( 'testimonial_service', array( 'testimonials' ), $args ); } add_action( 'init', 'custom_taxonomy_testimonial_service', 0 );
Możesz wkleić ten kod do nowo utworzonej wtyczki lub do motywu w pliku functions.php. Kod wkleiłem bezpośrednio do pliku functions.php, ponieważ jest to wygodniejsze w tym przykładzie. Pozycja podmenu Usługi referencji pojawiła się w menu pulpitu nawigacyjnego Referencje, a także znajduje się tam metabox, tak jak na zrzucie ekranu w konfiguracji wtyczki powyżej.
Ręczna rejestracja niestandardowej taksonomii działa, więc przeanalizujmy kod i zobaczmy dokładnie, co robi. Struktura kodu jest bardzo podobna do niestandardowej rejestracji typu posta z pierwszego artykułu, ale różni się kilkoma ustawieniami i wywołaniami funkcji:
-
custom_taxonomy_testimonial_service
funkcję custom_taxonomy_testimonial_service do akcji WPinit
w celu zarejestrowania niestandardowej taksonomii, - Pierwszy blok kodu wewnątrz funkcji to tablica etykiet, w której możesz zmienić słowa, które będą używane podczas tworzenia/edycji niestandardowych taksonomii. Wskazówka: Zalecam korzystanie z funkcji internacjonalizacji ucieczki. Więc zamiast
_x()
i__()
esc_html_x()
iesc_html__()
, - Drugi blok to tablica argumentów/ustawień dla taksonomii niestandardowej. Możesz zajrzeć do oficjalnej dokumentacji WP, aby zobaczyć, jakie argumenty możesz ustawić,
- Z
register_taxonomy( 'testimonial_service', array( 'testimonials' ), $args );
wywołanie, rejestrujemy niestandardową taksonomiętestimonial_service
, która „dołącza” do niestandardowego typu postatestimonials
z argumentami$args
.
Teraz, gdy zarejestrowaliśmy niestandardowy typ postu i niestandardową taksonomię, wystarczy wyświetlić je w naszej witrynie WordPress. Będzie to temat następnego i ostatniego posta na blogu o niestandardowych typach postów.