Funcție care returnează true dacă pagina curentă are pagini copil

7 dec. 2011, 02:44:33
Vizualizări: 19K
Voturi: 10

Încerc să creez o funcție simplă pentru a face un "test de stare". Scopul este să testez și să văd dacă pagina curentă care este vizualizată are sau nu pagini copil. Folosesc acest lucru pentru a adapta layout-ul în funcție de prezența paginilor copil. Următorul cod pare că ar trebui să funcționeze, dar din păcate, nu merge.

Vede cineva ce lipsește?

function is_subpage() {
global $post;                              // încarcă detaliile despre această pagină

if ( is_page() && $post->post_parent ) {   // verifică dacă pagina are o pagină părinte
    return true;                                            // returnează true, confirmând că există o pagină părinte

} else {                                   // nu există pagină părinte, deci...
    return false;                          // ...răspunsul la întrebare este false
}

}

0
Toate răspunsurile la întrebare 2
0
15

Funcția ta de mai sus verifică dacă o pagină este o pagină copil a altei pagini, nu dacă are pagini copil.

Poți verifica dacă pagina curentă are pagini copil astfel:

function has_children() {
    global $post;

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

Mai multe informații:

7 dec. 2011 03:08:07
0
10

Iată versiunea pentru orice tip de postare, în cazul în care folosești un tip personalizat de postare

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();
}
12 mai 2016 21:18:00