Wszyscy wiemy, jak ważne jest organizowanie treści na stronie internetowej. W WPBeginner rozumiemy, że korzystanie z kategorii i podkategorii pomaga odwiedzającym przeglądać witrynę i poprawia jej pozycję w wynikach wyszukiwania. Dobra struktura kategorii pomaga również odwiedzającym znaleźć to, czego potrzebują.
Większość motywów WordPress automatycznie wyświetla wszystkie kategorie powiązane z postem, nawet podkategorie. Może to bardzo mylić odwiedzających. Jednak niedawno jeden z naszych czytelników chciał wyświetlać tylko główną kategorię na swojej stronie pojedynczego posta. Chciał, aby jego odwiedzający skupili się na głównym temacie, zamiast być przytłoczonymi wieloma podkategoriami.
W tym artykule pokażemy Ci, jak użyć prostego fragmentu kodu do modyfikacji sposobu wyświetlania kategorii przez WordPress. Pozwoli to na wyświetlanie tylko głównej kategorii na stronie pojedynczego wpisu, co może znacznie poprawić wrażenia użytkowników z korzystania z Twojej witryny.

Kiedy wyświetlać tylko główną kategorię w WordPress
Wielu właścicieli witryn używa kategorii nadrzędnych i podrzędnych do tworzenia struktury swoich witryn.
Na przykład, blog podróżniczy może mieć miejsca podróży zorganizowane według kategorii, gdzie każdy region jest kategorią nadrzędną, a miasta kategoriami podrzędnymi.

Podobnie, blog kulinarny może publikować przepisy zorganizowane w kategorie nadrzędne i podrzędne. Na przykład, kategorią nadrzędną może być typ kuchni, a kategorią podrzędną typ dania.
Obecnie większość motywów WordPress używa the_category() tagu szablonu do wyświetlania wszystkich kategorii powiązanych z postem.
Ta funkcja jest wydajna, ale wyświetli wszystkie kategorie alfabetycznie i całkowicie zignoruje relację rodzic-dziecko.
Mając to na uwadze, przyjrzyjmy się, jak zmienić to zachowanie i wyświetlać tylko kategorię nadrzędną w pętli WordPress.
Wyświetl tylko kategorię nadrzędną w pętli wpisów WordPress
Do tego samouczka będziesz musiał edytować pliki motywu WordPress. Jeśli nigdy tego nie robiłeś, zapoznaj się z naszym artykułem jak kopiować i wklejać fragmenty kodu w WordPressie.
Najpierw musisz dodać kod do pliku functions.php swojego motywu lub użyć wtyczki do fragmentów kodu. Zalecamy użycie WPCode, ponieważ pozwala ona dodawać kod bez psucia strony, a jej inteligentna walidacja fragmentów kodu pomaga zapobiegać typowym błędom kodu.
Dowiedz się więcej w naszym przewodniku na temat jak dodawać niestandardowy kod w WordPress bez psucia witryny.
W tym samouczku użyjemy darmowej wersji WPCode. Chociaż nie ma ona wszystkich zaawansowanych funkcji pełnej wersji, zawiera wszystko, czego potrzebujesz, aby zacząć.
Pierwszą rzeczą, którą musisz zrobić, jest zainstalowanie i aktywowanie wtyczki WPCode. Jeśli potrzebujesz pomocy, możesz skorzystać z naszego przewodnika krok po kroku na temat jak zainstalować wtyczkę WordPress.
Po aktywacji możesz przejść do strony WPCode » Nowy fragment

Otworzy to stronę, na której możesz utworzyć niestandardowy fragment kodu.
Najpierw musisz dodać tytuł dla fragmentu. Następnie możesz skopiować i wkleić poniższy fragment kodu do okna podglądu kodu.
function wpb_get_parent_terms($taxonomy = 'category')
{
$currentPost = get_post();
$terms = get_the_terms($currentPost->ID, $taxonomy);
if (is_wp_error($terms)) {
/** @var \WP_Error $terms */
throw new \Exception($terms->get_error_message());
}
$map = array_map(
function ($term) use ($taxonomy) {
return '<a href="' . esc_url(get_term_link($term->term_id,
$taxonomy)) . '" title="' . esc_attr($term->name) . '">
' . $term->name . '
</a>';
},
array_filter($terms, function ($term) {
return $term->parent == 0;
})
);
return implode(', ', $map);
}

Następnie musisz wybrać opcję „PHP Snippet” z menu rozwijanego „Code Type” i przełączyć przełącznik „Inactive” na „Active”.
Na koniec upewnij się, że klikniesz przycisk „Zapisz fragment kodu”, aby zapisać swoje ustawienia.

Ten kod po prostu tworzy nową funkcję wpb_get_parent_terms(). Domyślnie ta funkcja będzie wyświetlać tylko kategorie nadrzędne.
Następnie musisz umieścić tę funkcję w plikach motywu WordPress, w miejscu, w którym chcesz wyświetlić samą kategorię nadrzędną.
Aby dowiedzieć się, który plik szablonu należy sprawdzić, zapoznaj się z naszym ściągawką dotyczącą hierarchii szablonów WordPress dla początkujących.
W zasadzie będziesz szukać znacznika szablonu the_category() wewnątrz pętli WordPress. Po jego znalezieniu musisz zastąpić go następującym kodem:
<?php wpb_get_parent_terms(); ?>
Ten kod wyświetli tylko Twoją kategorię nadrzędną.
Jeśli masz wiele kategorii, które są kategoriami nadrzędnymi lub samodzielnymi, wszystkie takie kategorie również zostaną wyświetlone.

Fragment kodu zadziała również dla wszystkich innych taksonomii. Na przykład kategorie produktów WooCommerce lub dowolna niestandardowa taksonomia, którą możesz mieć.
Po prostu zmodyfikuj kod w następujący sposób:
<?php wpb_get_parent_terms( 'product_cat '); ?>
Ten kod wyświetli kategorie produktów dla sklepu WooCommerce.
Wyświetli również tylko kategorie nadrzędne lub samodzielne dla produktu.

Jeśli chcesz wyświetlić niestandardową taksonomię, zastąp product_cat nazwą swojej niestandardowej taksonomii.
Przewodniki eksperckie dotyczące wyświetlania kategorii w WordPress
Mamy nadzieję, że ten artykuł pomógł Ci dowiedzieć się, jak wyświetlać tylko kategorię nadrzędną dla Twoich postów w WordPressie. Możesz również zapoznać się z innymi poradnikami dotyczącymi wyświetlania kategorii w WordPressie:
- Jak wyświetlić tylko kategorię podrzędną w pętli wpisów WordPress
- Jak wyświetlić podkategorie na stronach kategorii w WordPress
- Jak wyświetlać opisy kategorii w WordPress
- Jak zmienić kolejność kategorii w WordPress
- Jak wyświetlić najnowsze posty z konkretnej kategorii w WordPressie
- Jak pokazać / ukryć kategorie w WordPress (kompletny przewodnik)
- Jak pokazać puste kategorie w widżetach WordPress
- Jak inaczej stylizować poszczególne kategorie w WordPress
- Jak ukryć lub stylizować podkategorie w WordPressie
- Jak dodać obrazy taksonomii (ikony kategorii) w WordPress
Jeśli podobał Ci się ten artykuł, zasubskrybuj nasz kanał YouTube po samouczki wideo WordPress. Możesz nas również znaleźć na Twitterze i Facebooku.

Davide
Świetnie! A jeśli chcę nadać tym kategoriom inny styl CSS?
Pedrille
Super! Dzięki
Nithi
Jak wyświetlić tylko kategorię podrzędną? (Jak na obrazku, „Thesis” powyżej?)
Cami Tirapani
Zastanawiam się nad tym samym. :/
Joseph
Wiem, że jest stary, ale to byłaby po prostu aktualna kategoria
sathish
bardzo przydatne
JordashTalon
Powinieneś zagłosować na ten post na WordPressie. Zauważyłem ogromny brak dodawania funkcji głębokości do funkcji WordPressa: http://wordpress.org/extend/ideas/topic/add-depth-parameter-to-the_category?replies=3#post-21041
JordashTalon
Funkcje kategorii WordPress, które są
Kate M
Didn’t work for me
AselHora
dodaj znaczniki daty do swoich postów. w ten sposób będziemy wiedzieć, kiedy je napisałeś, i nie będziemy uwzględniać fragmentów kodu sprzed 5 lat.
John Saddington
świetny tutorial!