Función para devolver verdadero si la página actual tiene páginas secundarias

8

Estoy intentando crear una función simple para hacer una "prueba de estado". El objetivo es probar y ver si la página actual que se está viendo tiene páginas secundarias o no. Usando esto para alterar el diseño para acomodar páginas secundarias. El siguiente código parece que debería funcionar, pero, por desgracia, no hay dados.

¿Alguien ve lo que me estoy perdiendo?

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
}

}

    
pregunta Brian 07.12.2011 - 01:44

2 respuestas

11

La función anterior comprueba si una página es una página secundaria de otra página, no si tiene hijos.

Puedes probar para los niños de la página actual así:

function has_children() {
    global $post;

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

Lectura adicional:

respondido por el Johannes Pille 07.12.2011 - 02:08
7

Aquí está la versión para cualquier tipo de publicación, en caso de que esté utilizando un tipo de publicación personalizada

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();
}
    
respondido por el Dmitry Chuba 12.05.2016 - 20:18

Lea otras preguntas en las etiquetas