it-swarm.com.de

Funktion, die true zurückgibt, wenn die aktuelle Seite untergeordnete Seiten hat

Ich versuche eine einfache Funktion zu erstellen, um einen "Statustest" durchzuführen. Ziel ist es zu testen, ob die aktuell angezeigte Seite untergeordnete Seiten hat oder nicht. Verwenden Sie diese Option, um das Layout für untergeordnete Seiten zu ändern. Der folgende Code scheint zu funktionieren, aber leider keine Würfel.

Weiß jemand, was ich vermisse?

function is_subpage() {
global $post;                              // load details about this page

if ( is_page() && $post->post_parent ) {   // test to see if the page has a parent
    return true;                                            // return true, confirming there is a parent

} else {                                   // there is no parent so ...
    return false;                          // ... the answer to the question is false
}

}

8
Brian

Ihre obige Funktion testet, ob eine Seiteeine untergeordnete Seite einer anderen Seite ist, nicht, ob sie untergeordnete Seiten hat.

Sie können für Kinder der aktuellen Seite wie folgt testen:

function has_children() {
    global $post;

    $children = get_pages( array( 'child_of' => $post->ID ) );
    if( count( $children ) == 0 ) {
        return false;
    } else {
        return true;
    }
}

Weitere Lektüre:

12
Johannes Pille

Hier ist die Version für jeden Beitragstyp, falls Sie einen benutzerdefinierten Beitragstyp verwenden

function has_children($post_ID = null) {
    if ($post_ID === null) {
        global $post;
        $post_ID = $post->ID;
    }
    $query = new WP_Query(array('post_parent' => $post_ID, 'post_type' => 'any'));

    return $query->have_posts();
}
7
Dmitry Chuba