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

Wie man eine Liste von Unterseiten für eine übergeordnete Seite in WordPress anzeigt

Hinweis der Redaktion: Wir erhalten eine Provision für Partnerlinks auf WPBeginner. Die Provisionen haben keinen Einfluss auf die Meinung oder Bewertung unserer Redakteure. Erfahre mehr über Redaktioneller Prozess.

Kürzlich fragte uns einer unserer Leser, wie man Unterseiten einer WordPress-Seite anzeigen kann?

Wenn Sie Ihre WordPress-Website mit übergeordneten und untergeordneten Seiten organisieren, dann möchten Sie vielleicht Ihre untergeordneten Seiten oder Unterseiten auf der übergeordneten Hauptseite anzeigen. Vielleicht möchten Sie auch die Hauptseite auf jeder Unterseite anzeigen, um das Blättern zu erleichtern.

In diesem Artikel zeigen wir Ihnen, wie Sie ganz einfach eine Liste von untergeordneten Seiten für eine übergeordnete Seite in WordPress anzeigen können.

Displaying a list of child pages for a parent page in WordPress

Wenn Sie eine Liste von Child-Seiten anzeigen müssen?

WordPress verfügt über zwei Standard-Post-Typen, die Beiträge und Seiten genannt werden. Beiträge sind Blog-Inhalte, die normalerweise mit Kategorien und Tags organisiert sind.

Seiten sind einmalige oder eigenständige Inhalte, die immerwährend sind, wie z. B. die Seite „Über uns“ oder die Seite „Kontakt“.

In WordPress können Seiten hierarchisch aufgebaut sein, d. h. Sie können sie mit übergeordneten und untergeordneten Seiten organisieren.

Sie können zum Beispiel eine Produktseite mit untergeordneten Seiten für Merkmale, Preise und Support erstellen.

Um eine untergeordnete Seite zu erstellen, folgen Sie unserer Anleitung zum Erstellen einer untergeordneten Seite in WordPress.

Nachdem Sie Ihre über- und untergeordneten Seiten erstellt haben, können Sie die untergeordneten Seiten auf der übergeordneten Seite auflisten.

Ein einfacher Weg, dies zu tun, ist die manuelle Bearbeitung der übergeordneten Seite und das Hinzufügen einer Liste von einzelnen Links.

Manually add child page links

Allerdings müssen Sie die übergeordnete Seite jedes Mal manuell bearbeiten, wenn Sie eine untergeordnete Seite hinzufügen oder löschen. Wäre es nicht schöner, wenn Sie einfach eine untergeordnete Seite erstellen könnten und diese automatisch als Link auf der übergeordneten Seite erscheinen würde?

Werfen wir also einen Blick auf einige andere dynamische Möglichkeiten, um schnell eine Liste von Unterseiten auf der übergeordneten Seite in WordPress anzuzeigen. Wir zeigen Ihnen drei Methoden, damit Sie die für Sie beste auswählen können:

Methode 1. Anzeige untergeordneter Seiten auf übergeordneter Seite mithilfe eines Plugins

Diese Methode ist einfacher und wird für alle Benutzer empfohlen.

Zunächst müssen Sie das Page-list-Plugin installieren und aktivieren. Weitere Details finden Sie in unserer Schritt-für-Schritt-Anleitung zur Installation eines WordPress-Plugins.

Nach der Aktivierung müssen Sie die übergeordnete Seite bearbeiten und einfach den folgenden Shortcode an der Stelle hinzufügen, an der Sie die Liste der untergeordneten Seiten anzeigen möchten.

[subpages]

Sie können Ihre Seite nun speichern und in einer neuen Browser-Registerkarte ansehen. Sie werden feststellen, dass sie eine einfache Aufzählung aller untergeordneten Seiten anzeigt.

Plain list of child page links

Wenn Sie möchten, können Sie einige benutzerdefinierte CSS hinzufügen, um das Aussehen der Liste zu ändern. Hier finden Sie einige CSS-Beispiele, die Sie als Ausgangspunkt verwenden können.

ul.page-list.subpages-page-list {
    list-style: none;
    list-style-type: none;
    background-color: #eee;
    border: 1px solid #CCC;
    padding: 20px;
}

Nach der Anwendung Ihres benutzerdefinierten CSS können Sie eine Vorschau der übergeordneten Seite anzeigen. So sah es auf unserer Test-WordPress-Website aus.

Child pages list with CSS

Das Plugin bietet eine Reihe von Shortcode-Parametern, mit denen Sie die Tiefe, den Ausschluss von Seiten, die Anzahl der Elemente und mehr festlegen können. Details finden Sie auf der Seite des Plugins für eine ausführliche Dokumentation.

Methode 2. Auflisten untergeordneter Seiten für eine übergeordnete Seite mit Code

Diese Methode ist etwas komplizierter und erfordert, dass Sie Code zu Ihrer WordPress-Website hinzufügen. Wenn Sie dies noch nicht getan haben, sehen Sie sich bitte unsere Anleitung zum Kopieren und Einfügen von Code in WordPress an.

Um untergeordnete Seiten unter einer übergeordneten Seite aufzulisten, müssen Sie den folgenden Code in einem Code-Snippets-Plugin oder in der Datei functions.php Ihres Themes hinzufügen:

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');

Wir von WPBeginner empfehlen immer, Code in WordPress mit WPCode hinzuzufügen. Damit können Sie ganz einfach benutzerdefinierten Code hinzufügen, ohne Ihre Theme-Dateien zu bearbeiten, so dass Sie sich keine Sorgen machen müssen, Ihre Website zu zerstören.

Zunächst müssen Sie das kostenlose WPCode-Plugin installieren und aktivieren. Eine Schritt-für-Schritt-Anleitung finden Sie in diesem Leitfaden zur Installation eines WordPress-Plugins.

Sobald das Plugin aktiviert ist, navigieren Sie in Ihrem WordPress-Dashboard zu Code Snippets “ Snippet hinzufügen. Fahren Sie dort mit der Maus über die Option „Eigenen Code hinzufügen (neues Snippet)“ und klicken Sie auf die Schaltfläche „Snippet verwenden“.

Add a new custom code snippet in WPCode

Fügen Sie dann einen Titel für Ihr Snippet hinzu und fügen Sie den Code von oben in das Feld „Codevorschau“ ein.

Vergessen Sie nicht, „PHP Snippet“ als Code-Typ aus dem Dropdown-Menü auf der rechten Seite auszuwählen.

Paste code into WPCode plugin

Schalten Sie dann einfach den Schalter von „Inaktiv“ auf „Aktiv“ um und klicken Sie auf die Schaltfläche „Snippet speichern“ oben auf der Seite.

Activate and save your custom code snippet

Dieser Code prüft zunächst, ob eine Seite ein übergeordnetes Element hat oder die Seite selbst ein übergeordnetes Element ist.

Handelt es sich um eine übergeordnete Seite, werden die mit ihr verbundenen untergeordneten Seiten angezeigt. Handelt es sich um eine untergeordnete Seite, so werden alle anderen untergeordneten Seiten der übergeordneten Seite angezeigt.

Wenn es sich nur um eine Seite ohne untergeordnete oder übergeordnete Seite handelt, wird der Code nichts tun. In der letzten Zeile des Codes haben wir einen Shortcode hinzugefügt, mit dem Sie einfach untergeordnete Seiten anzeigen können, ohne Ihre Seitenvorlagen ändern zu müssen.

Um untergeordnete Seiten anzuzeigen, fügen Sie einfach den folgenden Shortcode in eine Seite oder ein Textwidget in der Seitenleiste ein:

[wpb_childpages]

Vergessen Sie nicht, Ihre Änderungen zu speichern und eine Vorschau in einem Browser-Tab zu erstellen. So sieht es auf unserer Testseite aus.

Plain link list

Sie können diese Seitenliste nun mit einem benutzerdefinierten CSS gestalten. Hier finden Sie einige Beispiele für CSS-Code, die Sie als Ausgangspunkt verwenden können.

ul.wpb_page_list {
    list-style: none;
    list-style-type: none;
    background-color: #eee;
    border: 1px solid #CCC;
    padding: 20px;
}

Methode 3. Dynamische Anzeige von Child-Seiten ohne Shortcode

Die Verwendung von Shortcodes ist praktisch, aber das Problem dabei ist, dass Sie Shortcodes auf allen Seiten hinzufügen müssen, die übergeordnete oder untergeordnete Seiten haben.

Es kann sein, dass Sie auf vielen Seiten Shortcodes haben, und manchmal vergessen Sie sogar, sie hinzuzufügen.

Ein besserer Ansatz wäre, die Seitenvorlagendatei in Ihrem Thema zu bearbeiten, so dass es automatisch untergeordnete Seiten anzeigen kann.

Dazu müssen Sie die Vorlage main page.php bearbeiten oder eine benutzerdefinierte Seitenvorlage in Ihrem Thema erstellen.

Sie können Ihr Haupt-Theme bearbeiten, aber diese Änderungen gehen verloren, wenn Sie Ihr Theme ändern oder aktualisieren. Deshalb ist es besser, wenn Sie ein Child-Theme erstellen und Ihre Änderungen dann im Child-Theme vornehmen.

In Ihrer Seitenvorlagendatei müssen Sie diese Codezeile dort einfügen, wo Sie untergeordnete Seiten anzeigen möchten.

<?php wpb_list_child_pages(); ?>

Das war’s schon. Ihr Theme erkennt nun automatisch untergeordnete Seiten und zeigt sie in einer einfachen Liste an.

Sie können die Stile mit CSS und Formatierung anpassen. Hier ist ein Beispiel dafür, wie die OptinMonster-Website die übergeordnete Seite und die Unterseiten anzeigt:

OptinMonster Sub Pages Example

Wir hoffen, dass dieser Artikel Ihnen geholfen hat, untergeordnete Seiten für eine übergeordnete Seite in WordPress aufzulisten. Vielleicht interessiert Sie auch unser Leitfaden zu den wichtigsten Seiten, die Sie auf einer neuen WordPress-Website erstellen sollten, und unser Vergleich der besten Drag & Drop-WordPress-Seitenersteller, mit denen Sie individuelle Layouts ohne Code erstellen können.

Wenn Ihnen dieser Artikel gefallen hat, dann abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Videotutorials. Sie können uns auch auf Twitter und Facebook finden.

Offenlegung: Unsere Inhalte werden von unseren Lesern unterstützt. Das bedeutet, dass wir möglicherweise eine Provision verdienen, wenn Sie auf einige unserer Links klicken. Mehr dazu erfahren Sie unter Wie WPBeginner finanziert wird , warum das wichtig ist und wie Sie uns unterstützen können. Hier finden Sie unseren redaktionellen Prozess .

Das ultimative WordPress Toolkit

Erhalte KOSTENLOSEN Zugang zu unserem Toolkit - eine Sammlung von WordPress-bezogenen Produkten und Ressourcen, die jeder Profi haben sollte!

Reader Interactions

81 KommentareEine Antwort hinterlassen

  1. Syed Balkhi says

    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!

    • WPBeginner Support says

      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.

      Admin

  2. Emmanuel Husseni says

    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

  3. Aaro says

    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?

  4. Keshav Murthy says

    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

  5. Gary Granai says

    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 says

      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.

      Admin

  6. Itika says

    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.

  7. Denise says

    For third level pages (grandchild), I want to show the same menu that is seen on the child pages (all the child links of the parent). With this snippet, when on a grandchild page, I only see the other grandchild pages in the menu. How would this code need to be modified to show the all child links even when on grandchild pages?

  8. Meredith L says

    I’m relatively new to blogging and I recently switched over to the Kale WordPress theme. I have been trying to do page attribute pages (under the parent page Recipes) so I can have separate categories for appetizers, desserts, etc. Everything seems to go through on the admin part but then on the site itself there are no page attributes/drop down form the Recipes category. What am I doing wrong? It is all set to public so I’m not sure what the problem is.

  9. Daves says

    Thank you for this code. But I don’t want this to be shown on the homepage (static page), just on the parent pages only. Please how can it be done?

    Thank you.

  10. Boris Budeck says

    I am using Generatepress Theme (created a child theme from it for customizing) and I can’t get this to work. The shortcode is displayed in the output page, it seems it is not even ercognized as being a shortcode. I use Elementor widgets and neither text nor shortcode widgets work.

    Any idea of how to make it work when using elementor widgets?

  11. Frederic says

    a great post, it’s exactly what I’m looking for since many hours ! and it works like a charm, just adding the code in the function.php of the theme then adding the short code in the page where I want the sub pages to appear, and voilà!!!
    wonderful, thanks a lot for your generosity !!

  12. Ron says

    Like with so many of the snippets we find, one has to go through all the comments in order to get it to work. What’s wrong with testing what you write?

  13. Rudy says

    Using this code ends up displaying the parent page along with the child pages, which is redundant. As I understand it, what we really need is to display only the child pages, not the parent page. Any suggested modification that can do this?

  14. Milos says

    On plugins update, for some strange reason I always get an error:

    Fatal error: Cannot redeclare wpb_list_child_pages() (previously declared in …/wp-content/themes/pagelines/functions.php:25) in …/wp-content/themes/pagelines/functions.php on line 34

  15. ethann says

    Hello great article,
    Can you please help me creating a dropdown of child pages in parent page.I need this functionality for one of my wordpress project and i am totally newbie to wordpress.

  16. Alex says

    Am I the only one that cannot get it to work?

    I have the following structure

    About
    — Page 1
    — Page 2
    — Page 3

    When on the „About“ or a child page (1, 2 or 3) I would like to have a list with my parent page (About) and all children (1, 2, 3) – Anyone got that working?

    Thanks! :)

    • Kendra says

      OMG sorry this is annoying Please ignore my other posts. Didn’t realize you couldn’t paste code into the comments.

      I was NOT able to get it to work with wpb_list_child_pages();

      I WAS able to get it to work with echo do_shortcode( ‘[wpb_childpages]’)

      And to get the title of the parent page, i inserted this above the child page list:
      $current = $post->ID;

      $parent = $post->post_parent;

      $grandparent_get = get_post($parent);

      $grandparent = $grandparent_get->post_parent;

      PHP if ($root_parent = get_the_title($grandparent) !== $root_parent = get_the_title($current)) {echo get_the_title($grandparent); }else {echo get_the_title($parent);

  17. Michelle says

    Hi,

    I want to do the following

    Parent page must be either for sale and or for rent
    Then I want the child for example a province (gauteng) to link to the for sale and the for rent parent.
    How do I do that?

    Michelle

  18. Zakhar says

    How can i create shortcode with param, for example, [wpb_childpages id=“1″], where id=“1″ is an id of parent page?

  19. Aander says

    Thank you,

    Could you explain, please, how can I organize child pages in drop down list that would be accessible through the parent page? (I don’t want the visitors could see all child pages in a form of a blogroll.)

    I.e., on the parent page I want to create drop down list (listbox) to which child pages would be added in predefined order (say in alphabetical order). After reading Introduction a visitor can proceed by choosing any page from the list at her wish (child pages has no logical connection so in any case she will search the exact page).

    Is ‚my dream‘ realizable?

    Thank you again.

  20. Astrid says

    Hi WPBeginner Staff,

    I used the code you guys provided with the „short code option“ and it worked (links to child pages). However, I wanted to use the permanent option, and that didn’t work.

    When I added this line of code [ ] the parent page returns a 500 error and no child pages are displayed at atll.

    What am I doing wrong?

    On a side note if I wanted to display and excerpt with its respective image how would I go about it? Thanks!

    • Astrid says

      I was able to figure this out.

      I added the code snippet then added this shortcode [wpb_childpages] to the parent page where I wanted the child pages displayed. Awesome!

      Now in order to display excerpts and an image would I use the same queries– just like posts under a category.

      Thanks in advance :)

      • Jade says

        Hey I was wondering what you meant by ‚query‘? How exactly did you get the excerpts and images to display in the parent page?

        Thanks!

  21. Pradeep says

    Could someone confirm that the example page used in this tutorial http://optinmonster.com/how-it-works/ uses this feature or not? To me it looks like it they are using tabs, instead of child pages.

    If I’m right, could someone direct me to a resource to get that feature, as I’m desperately looking for a fluid solution like the one they have in that page?

    Many thanks,

    Pradeep

  22. Andrew Roberts says

    For the non-shortcode option, you might want to let users know they need to either change
    return $string; to
    echo $string; or
    in their page template echo out the function
    echo page_list_child_pages();

    Thanks to Erik for pointing this out above

  23. Howard says

    Hi, I can get this to work when I am visiting my domain with a subdirectory (e.g – example.com/home) but when viewing the site without this (example.com) the list of sub pages is not listed. Can anyone point me as to where I am going wrong?

    Thanks in advance – very new to WordPress.

  24. Emily Jennewein says

    How do you get this function to display the parent page itself at the top of the list along with the list of child and grandchild pages? On the child pages it does not list the parent page.

  25. Jenny says

    Is there now a plugin that can do same ?

    and also can we decide where the box with submenus pages will go in any are of the page not just top of page? Using a plugin

  26. WPBeginner Staff says

    Yes it can be used for custom post types. Like this:


    function wpb_list_child_pages() {

    global $post;

    if ( 'movie' == get_post_type() && $post->post_parent )

    $childpages = wp_list_pages( 'post_type=movie&sort_column=menu_order&title_li=&child_of=' . $post->post_parent . '&echo=0' );
    else
    $childpages = wp_list_pages( 'post_type=movie&sort_column=menu_order&title_li=&child_of=' . $post->ID . '&echo=0' );

    if ( $childpages ) {

    $string = '' . $childpages . '';
    }

    return $string;

    }

    add_shortcode('wpb_childpages', 'wpb_list_child_pages');

  27. dpc says

    Is there a way to modify this in order to print custom post type child posts on a custom post type post page? Thanks, it is very handy!

  28. Sokeara says

    It’s very greate for me! Anyways I would like to know how can I display title and thumbnail of child page to parent page.

    • Ashley Bell says

      Hi, I have the same query. I really like how the list is styled on the Beginners Blueprint page but I have no idea how to start. Can someone recommend an article to read or give some advice, thanks.

  29. amitabha197 says

    There is an error in the pages which are not having child pages so I have slightly modified
    if( count($childpages) != 0 ) {
    $string = “ . $childpages . “;
    }

    instead of
    if( $childpages ){
    $string = “ . $childpages . “;
    }

  30. Coen Siebenheller says

    I’ve added the code to the functions.php and when i add the [wpb_childpages] shortcode in side my text it works. But when try to add to one of my templates it doesn’t show a thing. Anybody knows what i’m doing wrong?

Eine Antwort hinterlassen

Danke, dass du einen Kommentar hinterlassen möchtest. Bitte beachte, dass alle Kommentare nach unseren kommentarpolitik moderiert werden und deine E-Mail-Adresse NICHT veröffentlicht wird. Bitte verwende KEINE Schlüsselwörter im Namensfeld. Lass uns ein persönliches und sinnvolles Gespräch führen.