ID der übergeordnetsten Seite

  • Hallo,

    ich brauche die ID der übergeordnetsten Seite, also der 1. in der Hierarchie.

    Beispielsweise:

    Startseite (1)
    Test #1 (2)
    -Test #2 (3)
    --Test #3 (4)

    Beim Aufruf der Seite Test #1, #2 und #3 soll also die ID ausgegeben werden.

    Mit dem Titel kriege ich das schon wunderbar hin:

    PHP
    function get_top_level_parent_title() {
    global $post;  
    if ( empty($post->post_parent) )    { 
    the_title(); 
    }  else {    
    $ancestors = get_post_ancestors($post->ID);    
    end($ancestors);      
    echo get_the_title(end($ancestors));  
    }
    }

    Etwas geändert soll das für die ID gehen:

    PHP
    function get_top_level_parent_id() {
    global $post;  
    if ( empty($post->post_parent) )    { 
    the_title(); 
    }  else {    
    $ancestors = get_post_ancestors($post->ID);    
    end($ancestors);      
    $parentpostid = get_the_id(end($ancestors));  
    }
    }

    Auslesen will ich das dann wie folgt:

    PHP
    <?php
    get_top_level_parent_id();
    wp_list_pages("title_li=&child_of=".$parentpostid);
    ?>

    Jedoch werden mir dann alle Seiten angezeigt. :( Kann mir jemand helfen!

    Gruß
    Richard

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Danke dir erstmal.

    Tut es aber leider nicht. :(

    PHP
    <?php
    $ancestors2 = get_post_ancestors($post->ID);
    ?>
    <ul>
    <?php
    wp_list_pages("title_li=&child_of=".end($ancestors2)."&echo=0");
    ?>
    </ul>

    Noch einen Tipp? ;)

  • Ich hab's. :)

    Wen es interessiert:

    PHP
    <?php
      if($post->post_parent)
      $children = wp_list_pages("title_li=&child_of=".end(get_post_ancestors($post->ID))."&echo=0");
      else
      $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
      if ($children) { ?>
      <ul>
      <?php echo $children; ?>
      </ul>
      <?php } ?>

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!