Wie bekomme ich alle untergeordneten Seiten einer übergeordneten Seite in WordPress?

Lesezeit: 3 Minuten

Benutzeravatar von krathos
Krathos

Beispiel:

About
--- Menu 1
--- Menu 2
--- Menu 3
--- Menu 4

Wenn ich auf der About-Seite bin … habe ich die Unterseiten. Wenn Sie jedoch Menü 1 aufrufen, verschwinden alle Seiten

Was ich brauche, ist die ganze Zeit die übergeordneten Seiten zu sehen

Aktuell habe ich diesen Code

<? if (is_page()) {
    $g_page_id = $wp_query->get_queried_object_id();
    wp_list_pages("depth=4&title_li=&child_of=".$g_page_id."&sort_column=menu_order");
   }
?>

Vielen Dank!

Beschlossen

Ich benutze das und funktioniert gut!

<?php
if ( is_page() ) :
    if( $post->post_parent ) :
        $children = wp_list_pages( 'title_li=&child_of=".$post->post_parent."&echo=0' );
    else;
        $children = wp_list_pages( 'title_li=&child_of=".$post->ID."&echo=0' );
    endif;
    if ($children) : ?>
        <div class="title">
            <?php
            $parent_title = get_the_title( $post->post_parent );
            echo $parent_title;
            ?>
            <span></span>
        </div>
        <ul>
            <?php echo $children; ?>
        </ul>
    <?php
    endif;
endif;
?>

  • Sie sollten versuchen, das nächste Mal zu suchen. Probieren Sie dies aus: http://stackoverflow.com/questions/9190427/…

    – Aleksey Razbakov

    10. Mai 2013 um 18:18 Uhr


  • Dieser Code funktioniert bei mir nicht, ich habe einen Fehler.

    – Krathos

    10. Mai 2013 um 18:29 Uhr

Benutzeravatar von Jos Faber
Josef Faber

Bitte schön. Ein bisschen spät für den Autor, aber die Leute werden immer noch hierher kommen, um eine Antwort zu erhalten 😉

<?php 
// determine parent of current page
if ($post->post_parent) {
    $ancestors = get_post_ancestors($post->ID);
    $parent = $ancestors[count($ancestors) - 1];
} else {
    $parent = $post->ID;
}

$children = wp_list_pages("title_li=&child_of=" . $parent . "&echo=0");

if ($children) {
?>

    <ul class="subnav">
        <?php 
            // current child will have class 'current_page_item'
            echo $children; 
        ?>
    </ul>

<?php 
} 
?>

  • Sie haben bereits einen Elternausweis $post->post_parent warum also verwenden get_post_ancestors Eltern werden?

    – Igor Jerosimić

    10. Februar 2015 um 12:04 Uhr

Benutzeravatar von Daniel Morell
Daniel Morel

Der einfachste Weg, dies zu handhaben, ist mit get_children(). Es tut so ziemlich das, was man erwarten würde. Es gibt die untergeordneten Seiten einer übergeordneten Seite zurück.

get_children() ist im Grunde ein Wrapper für die WP_Query Klasse.

Du kannst es so verwenden…

$child_args = array(
    'post_parent' => $post->ID, // The parent id.
    'post_type'   => 'page',
    'post_status' => 'publish'
);

$children = get_children( $child_args );

Wenn Sie die Kinder des aktuellen Postens zurückgeben möchten, können Sie vorbeigehen $post->ID als die 'post_parent'. Verwenden Sie andernfalls eine beliebige ID.

Dokumentation für get_children()

Dokumentation für WP_Query

Benutzeravatar von Harshal Solanki
Harschal Solanki

/* Fetch all child pages of a parent page*/    
$pages = get_pages(
         array (
         'parent'  => '-1',
         'child_of' => 'parent_id', /* Return child of child for current page id */
         'post_type  => 'page',
         'post_status'  => 'publish',
          );
         $ids = wp_list_pluck( $pages, 'ID' );
/* Return page IDs in array format */
/* You can retrieve "post_title", "guid", "post_name" instead of "ID" */

/* Fetch only one level child pages of a parent page */    
         $pages = get_pages(
         array (
                  'parent'  => 'parent_id', 
                  'post_type  => 'page', 
                  'post_status'  => 'publish',
                );
                
         $ids = wp_list_pluck( $pages, 'ID' );
 /* Return page IDs in array format */
 /* You can retrieve "post_title", "guid", "post_name" instead of "ID"

1402530cookie-checkWie bekomme ich alle untergeordneten Seiten einer übergeordneten Seite in WordPress?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy