Niedawno jeden z naszych czytelników zapytał nas, jak wyświetlić strony podrzędne strony WordPress?
Jeśli organizujesz swoją witrynę internetową WordPress ze stronami nadrzędnymi i podrzędnymi, możesz chcieć wyświetlać swoje strony podrzędne lub podstrony na głównej stronie nadrzędnej. Możesz również chcieć wyświetlić stronę główną na każdej stronie podrzędnej, aby ułatwić przeglądanie.
W tym artykule pokażemy, jak łatwo wyświetlić listę stron podrzędnych dla strony nadrzędnej w WordPress.
Kiedy trzeba wyświetlić listę stron podrzędnych?
WordPress zawiera dwa domyślne typy treści zwane wpisami i stronami. Wpisy są treścią bloga i zazwyczaj są zorganizowane za pomocą kategorii i tagów.
Strony to jednorazowe lub samodzielne treści, które są wiecznie zielone, takie jak na przykład strona „O nas” lub „Skontaktuj się z nami”.
W WordPressie strony mogą być hierarchiczne, co oznacza, że można je organizować za pomocą stron nadrzędnych i podrzędnych.
Przykładowo, możesz utworzyć stronę produktu ze stronami podrzędnymi dla funkcji, cennika i pomocy technicznej.
Aby utworzyć stronę podrzędną, postępuj zgodnie z naszym przewodnikiem na temat tworzenia stron podrzędnych w WordPress.
Po utworzeniu twojej strony nadrzędnej i podrzędnej, możesz chcieć wyświetlić listę stron podrzędnych na głównej stronie nadrzędnej.
Teraz, łatwym sposobem na zrobienie tego jest ręczna edycja strony nadrzędnej i dodanie listy odnośników indywidualnie.
Będziesz jednak musiał ręcznie edytować stronę nadrzędną za każdym razem, gdy dodasz lub usuniesz stronę podrzędną. Czy nie byłoby lepiej, gdyby można było po prostu utworzyć stronę podrzędną i automatycznie pojawiałaby się ona jako odnośnik na stronie nadrzędnej?
Biorąc to pod uwagę, przyjrzyjmy się innym dynamicznym sposobom szybkiego wyświetlania listy stron podrzędnych na stronie nadrzędnej w WordPress. Pokażemy ci trzy metody, abyś mógł wybrać tę, która jest dla ciebie najlepsza:
Metoda 1. Wyświetlanie stron podrzędnych na stronie nadrzędnej za pomocą wtyczki
Ta metoda jest łatwiejsza i zalecana dla wszystkich użytkowników.
Najpierw należy zainstalować i włączyć wtyczkę Page-list. Aby uzyskać więcej informacji, zobacz nasz przewodnik krok po kroku, jak zainstalować wtyczkę WordPress.
Po włączaniu należy edytować stronę nadrzędną i po prostu dodać następujący krótki kod w miejscu, w którym ma być wyświetlana lista stron podrzędnych.
[podstrony]
Możesz teraz zapisać swoją stronę i podglądnąć ją w nowej karcie przeglądarki. Powiadomienie wyświetli prostą, wypunktowaną listę wszystkich stron podrzędnych.
Jeśli chcesz, możesz dodać własny CSS, aby zmienić wygląd listy. Oto przykładowy kod CSS, który można wykorzystać jako punkt wyjścia.
ul.page-list.subpages-page-list {
list-style: none;
list-style-type: none;
background-color: #eee;
border: 1px solid #CCC;
padding: 20px;
}
Po zastosowaniu własnego CSS możesz wyświetlić podgląd strony nadrzędnej. Tak to wyglądało na naszej testowej witrynie internetowej WordPress.
Wtyczka udostępnia szereg parametrów krótkiego kodu, które pozwalają ustawić głębokość, wykluczyć strony, liczbę elementów i nie tylko. Szczegółowa dokumentacja znajduje się na stronie wtyczki.
Metoda 2. Lista stron podrzędnych dla strony nadrzędnej przy użyciu kodu
Ta metoda jest nieco zaawansowana i wymaga dodania kodu do twojej witryny internetowej WordPress. Jeśli nie robiłeś tego wcześniej, zapoznaj się z naszym przewodnikiem na temat kopiowania i wklejania kodu w WordPress.
Aby wyświetlić listę stron podrzędnych pod stroną nadrzędną, musisz dodać następujący kod we wtyczce fragmentów kodu lub w pliku functions.php twojego motywu:
function wpb_list_child_pages() {
global $post;
if ( is_page() && $post->post_parent )
$childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->post_parent . '&echo=0' );
else
$childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->ID . '&echo=0' );
if ( $childpages ) {
$string = '<ul class="wpb_page_list">' . $childpages . '</ul>';
}
return $string;
}
add_shortcode('wpb_childpages', 'wpb_list_child_pages');
W WPBeginner zawsze zalecamy dodawanie kodu w WordPressie za pomocą wtyczki WPCode.
WPCode umożliwia łatwe dodawanie własnego konfiguratora bez edytowania plików motywu, dzięki czemu nie musisz się martwić, że zepsujesz swoją witrynę.
Najpierw należy zainstalować i włączyć darmową wtyczkę WPCode. Aby uzyskać instrukcje krok po kroku, zobacz ten przewodnik na temat instalacji wtyczki WordPress.
Po włączeniu wtyczki, przejdź do Code Snippets ” Add Snippet z twojego kokpitu WordPress. Następnie najedź kursorem myszy na opcję „Add Your Custom Code (New Snippet)” i kliknij przycisk „Use snippet”.
Następnie dodaj tytuł dla twojego fragmentu kodu i wklej powyższy kod w polu „Podgląd kodu”.
Nie zapomnij wybrać „Fragmentu kodu PHP” jako rodzaju kodu z rozwijanego menu po prawej stronie.
Następnie wystarczy przełączyć przełącznik z „Nieaktywny” na „Aktywny” i kliknąć przycisk „Zapisz fragment kodu” u góry strony.
Ten kod najpierw sprawdza, czy strona ma nadrzędnego lub czy sama strona jest nadrzędna.
Jeśli jest to strona nadrzędna, wyświetla powiązane z nią strony podrzędne. Jeśli jest to strona podrzędna, wyświetla wszystkie inne strony podrzędne strony nadrzędnej.
Wreszcie, jeśli jest to tylko strona bez strony podrzędnej lub nadrzędnej, kod po prostu nic nie zrobi. W ostatnim wierszu kodu dodaliśmy krótki kod, dzięki czemu możesz łatwo wyświetlać strony podrzędne bez modyfikowania twoich szablonów stron.
Aby wyświetlić strony podrzędne, wystarczy dodać następujący krótki kod na stronie lub w widżecie tekstowym na panelu bocznym:
[wpb_childpages]
Nie zapomnij zapisać swoich zmian i podglądnąć ich na karcie przeglądarki. Tak to wygląda na naszej witrynie testowej.
Możesz teraz nadać styl tej liście stron za pomocą własnego kodu CSS. Oto przykładowy kod CSS, który można wykorzystać jako punkt wyjścia.
ul.wpb_page_list {
list-style: none;
list-style-type: none;
background-color: #eee;
border: 1px solid #CCC;
padding: 20px;
}
Metoda 3. Dynamiczne wyświetlanie stron podrzędnych bez krótkiego kodu
Korzystanie z krótkich kodów jest wygodne, ale problem z nimi polega na tym, że będziesz musiał dodać krótkie kody na wszystkich stronach, które mają strony nadrzędne lub podrzędne.
Może się zdarzyć, że będziesz mieć krótki kod na wielu stronach, a czasem nawet zapomnisz go dodać.
Lepszym podejściem byłoby edytowanie pliku szablonu strony w twoim motywie, aby mógł on automatycznie wyświetlać strony potomne.
Aby to zrobić, musisz edytować szablon strony
głównej .php
lub utworzyć własny szablon strony w twoim motywie.
Możesz edytować swój główny motyw, ale zmiany te znikną, jeśli zmienisz lub zaktualizujesz swój motyw. Dlatego lepiej będzie, jeśli utworzysz motyw potomny, a następnie wprowadzisz w nim swoje zmiany.
W pliku szablonu twojej strony musisz dodać ten wiersz kodu w miejscu, w którym chcesz wyświetlać strony podrzędne.
<?php wpb_list_child_pages(); ?>
To wszystko. Twój motyw będzie teraz automatycznie wykrywał strony potomne i wyświetlał je na zwykłej liście.
Możesz dostosować style za pomocą CSS i formatowania. Oto przykład tego, jak witryna OptinMonster wyświetla stronę nadrzędną i strony podrzędne:
Mamy nadzieję, że ten artykuł pomógł ci stworzyć listę stron podrzędnych dla strony nadrzędnej w WordPress. Warto również zapoznać się z naszym przewodnikiem na temat najważniejszych stron, które należy utworzyć w nowej witrynie internetowej WordPress, a także z naszym porównaniem najlepszych kreatorów stron WordPress typu „przeciągnij i upuść ” do tworzenia własnych układów bez żadnego kodu.
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.
Philip
Hello this works, except that the parent is also displaying, how do i show just the child pages, thanks
WPBeginner Support
The simplest method for what it sounds like you’re wanting would be to not have content on the parent page and only have your content in the child pages.
Administrator
Sachit Shori
Thank you so much. You saved me.
WPBeginner Support
You’re welcome
Administrator
Emmanuel Husseni
Hello Wpbeginner,
Please how can i sort all the child page alphabetically on the parent page. I’ve follow all step but the sub pages are showing randomly on the parent page.
Waiting for response. ….Thanks
WPBeginner Support
You would change the two instances of menu_order in our code to be: post_title
Administrator
Iyke O.
How do I make the list collapsible on sidebar.
WPBeginner Support
To make it collapsable you could use an accordion plugin such as one of the ones from our article here: https://www.wpbeginner.com/showcase/best-wordpress-accordion-plugins/
Administrator
Stacie
Easy to follow and did the job. Thanks so much for sharing!
WPBeginner Support
You’re welcome, glad our content could be helpful
Administrator
Aaro
Can I assign a css class to this function? So that when I make css changes to ul elements it wouldn’t affect other ul’s on the site.
Or any other simple solution for this?
WPBeginner Support
You could add your CSS class in the ul section of the function
Administrator
Keshav Murthy
Hi, WPB Team,
Thank you so much for this Snippet and the tutorial.
It saved my ton of time and helped me too.
With Warm Regards,
Keshav Murthy
WPBeginner Support
Glad our tutorial could help
Administrator
Gary Granai
I installed the plugin code snippets in wordpress 4.9.8
I copied the code on https://www.wpbeginner.com/wp-tutorials/how-to-display-a-list-of-child-pages-for-a-parent-page-in-wordpress/#respond and added it to a new snippet in code snippets.
I made a page and then a page which was given the attribute of having the first page as the parent page.
The child parent relationship is shown in the list of pages in the attributes drop down.
When I open the parent page I see nothing that shows a child page.
I then tried using the functions.php page.
I added the code copied from https://www.wpbeginner.com/wp-tutorials/how-to-display-a-list-of-child-pages-for-a-parent-page-in-wordpress/#respond to the bottom of the code on the functions page.
When I open the parent page, I it does not display. What displays is an error message saying there is unexpected code.
I restored the functions.php page to its original statuc.
What changes must I make to what I have tried to do.
WPBeginner Support
Hi Gary,
Make sure that you publish the child page before testing the code. Also carefully copy the code again to make sure that you are not copying the numbers or any unexpected characters.
Administrator
Itika
I have a question. I have added sub pages in parent page but when I am opening the site in mobile and clicking on parent page it opens the empty parent page. To view the drop down sub pages one have to hold the button of parent page. How can I fix it. I don’t want that empty page to open. I want that if we touch on parent page it opens the drop down menu.
Please suggest how to do it.