Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Puchar WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Jak wyświetlić tylko kategorię nadrzędną w pętli wpisów WordPress?

W WPBeginner rozumiemy, że stworzenie dobrze zorganizowanej hierarchii kategorii i podkategorii może poprawić wrażenia użytkownika i SEO.

Domyślnie większość motywów WordPress wyświetla listę wszystkich kategorii powiązanych z wpisem.

Jednak jeden z naszych czytelników zapytał, czy możliwe jest wyświetlanie tylko kategorii nadrzędnej w pętli wpisów i wykluczenie kategorii podrzędnych. Chcą skupić uwagę odwiedzających na szerszym temacie każdego wpisu zamiast na złożonej hierarchii.

W tym artykule pokażemy, jak użyć fragmentu kodu, aby zmodyfikować pętlę postów WordPress i wyświetlić tylko kategorię nadrzędną w pojedynczym wpisie.

Displaying only the parent category in WordPress loop

Kiedy wyświetlać tylko kategorię nadrzędną w WordPress?

Wielu właścicieli witryn internetowych używa kategorii nadrzędnych i podrzędnych do tworzenia struktury swoich witryn internetowych.

Przykładowo, blog podróżniczy może mieć miejsca docelowe podróży zorganizowane według kategorii, gdzie każdy region jest kategorią nadrzędną, a miasta kategoriami podrzędnymi.

Parent and child categories displayed

Podobnie, blog kulinarny może publikować przepisy zorganizowane w kategoriach nadrzędnych i podrzędnych. Przykładowo, kategorią nadrzędną może być rodzaj kuchni, a kategorią podrzędną może być rodzaj dania.

Obecnie większość motywów WordPress używa tagu szablonu the_category(), aby wyświetlić listę wszystkich kategorii powiązanych z wpisem.

Ta funkcja jest wydajna, ale wyświetli wszystkie kategorie alfabetycznie i całkowicie zignoruje relacje nadrzędny/dziecko.

W związku z tym przyjrzyjmy się, jak zmienić to zachowanie i wyświetlać tylko nadrzędną kategorię w pętli WordPress.

Wyświetlanie tylko kategorii nadrzędnej w pętli wpisów WordPressa

W tym poradniku będziesz musiał edytować pliki twojego motywu WordPress. Jeśli nie robiłeś tego wcześniej, zapoznaj się z naszym artykułem na temat kopiowania i wklejania fragmentów kodu w WordPress.

Po pierwsze, musisz dodać kod do pliku functions. php twojego motywu lub użyć wtyczki fragmentów kodu. Zalecamy korzystanie z WPCode, ponieważ pozwala on dodawać kod bez naruszania twojej witryny, a jego inteligentna walidacja fragmentów kodu pomaga zapobiegać typowym błędom w kodzie.

Dowiedz się więcej w naszym przewodniku na temat dodawania własnego kodu w WordPressie bez niszczenia twojej witryny.

W tym poradniku 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ć, to zainstalować i włączyć wtyczkę WPCode. Jeśli potrzebujesz pomocy, możesz skorzystać z naszego przewodnika krok po kroku, jak zainstalować wtyczkę WordPress.

Po włączaniu można przejść do strony WPCode ” Nowy fragment kodu

Adding a New Snippet in WPCode

Spowoduje to otwarcie strony, na której można utworzyć własny fragment kodu.

Najpierw należy dodać tytuł fragmentu kodu. Następnie można skopiować i wkleić poniższy fragment kodu do panelu 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);
}
Adding a Title and Code Snippet to WPCode

Następnie należy wybrać opcję „PHP Snippet” z rozwijanego menu Code Type i przełączyć przełącznik Inactive na Active.

Na koniec kliknij przycisk „Zapisz fragment kodu”, aby zapisać twoje ustawienia.

In WPCode, Select PHP as the Code Type and Toggle the Snippet Active

Ten kod po prostu tworzy nową funkcję wpb_get_parent_terms(). Domyślnie funkcja ta wyświetli tylko kategorie nadrzędne.

Następnie musisz umieścić tę funkcję w plikach Twojego motywu WordPress w miejscu, w którym chcesz wyświetlać samą kategorię nadrzędną.

Aby dowiedzieć się, do którego pliku szablonu należy zajrzeć, zobacz naszą ściągawkę z hierarchii szablonów WordPress dla początkujących.

Zasadniczo będziesz szukał tagu szablonu the_category(); wewnątrz pętli WordPress. Po jego znalezieniu należy 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.

Only parent category displayed

Fragment kodu będzie działał również dla wszystkich innych taksonomii. Na przykład kategorie produktów WooCommerce lub dowolna własna taksonomia, którą możesz mieć.

Wystarczy zmodyfikować 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.

Only parent product category displayed

Jeśli chcesz wyświetlić niestandardową taksonomię, zastąp product_cat własną nazwą taksonomii.

Przewodniki ekspertów dotyczące wyświetlania kategorii w WordPressie

Teraz, gdy już wiesz, jak wyświetlić tylko nadrzędną kategorię dla twoich wpisów w WordPressie, być może spodoba ci się kilka innych przewodników związanych z wyświetlaniem kategorii w WordPressie:

Mamy nadzieję, że ten artykuł pomógł ci dowiedzieć się, jak wyświetlić tylko nadrzędną kategorię dla twoich wpisów WordPress. Możesz również zapoznać się z naszym przewodnikiem na temat wyświetlania pól własnych poza pętlą lub naszym eksperckim wyborem najlepszego oprogramowania AI chatbot dla twojej witryny internetowej.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Ujawnienie: Nasze treści są wspierane przez czytelników. Oznacza to, że jeśli klikniesz na niektóre z naszych linków, możemy otrzymać prowizję. Zobacz jak WPBeginner jest finansowany, dlaczego to ma znaczenie i jak możesz nas wspierać. Oto nasz proces redakcyjny.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Najlepszy zestaw narzędzi WordPress

Uzyskaj BEZPŁATNY dostęp do naszego zestawu narzędzi - zbiór produktów i zasobów związanych z WordPressem, które każdy profesjonalista powinien mieć!

Reader Interactions

12 komentarzyZostaw odpowiedź

  1. Syed Balkhi

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Davide

    Great! And if i want to give a different css to these categories?

  3. Nithi

    How to display only Child category? (Like in the image, „Thesis” above? )

    • Cami Tirapani

      I’m wondering the same thing. :/

      • Joseph

        I know its old, but that would just be the current category

  4. AselHora

    put date stamps to your posts. this way we know when you wrote it and not include code snippets 5 years old.

Zostaw odpowiedź

Dziękujemy za pozostawienie komentarza. Pamiętaj, że wszystkie komentarze są moderowane zgodnie z naszymi polityka komentarzy, a Twój adres e-mail NIE zostanie opublikowany. NIE używaj słów kluczowych w polu nazwy. Przeprowadźmy osobistą i konstruktywną rozmowę.