Funzione per verificare se la pagina corrente ha pagine figlie in WordPress

7 dic 2011, 02:44:33
Visualizzazioni: 19K
Voti: 10

Sto cercando di creare una semplice funzione per fare un "test di stato". L'obiettivo è verificare se la pagina corrente visualizzata ha pagine figlie o meno. Userò questa funzione per modificare il layout in base alla presenza di pagine figlie. Il seguente codice sembra dovrebbe funzionare, ma purtroppo non va.

Qualcuno riesce a vedere cosa mi manca?

function is_subpage() {
global $post;                              // carica i dettagli sulla pagina corrente

if ( is_page() && $post->post_parent ) {   // verifica se la pagina ha una genitore
    return true;                                            // restituisce true, confermando che c'è un genitore

} else {                                   // non c'è un genitore quindi...
    return false;                          // ...la risposta alla domanda è false
}

}

0
Tutte le risposte alla domanda 2
0
15

La tua funzione sopra verifica se una pagina è una pagina figlia di un'altra pagina, non se ha figli.

Puoi verificare se la pagina corrente ha figli in questo modo:

function has_children() {
    global $post;

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

Ulteriori letture:

7 dic 2011 03:08:07
0
10

Ecco la versione per qualsiasi tipo di post, nel caso in cui tu stia utilizzando un tipo di post personalizzato

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 mag 2016 21:18:00