Función para retornar verdadero si la página actual tiene páginas hijas
7 dic 2011, 02:44:33
Vistas: 19K
Votos: 10
Estoy intentando crear una función simple para hacer una "prueba de estado". El objetivo es comprobar si la página actual que se está viendo tiene páginas hijas o no. Uso esto para modificar el diseño y acomodar las páginas hijas. El siguiente código parece que debería funcionar, pero por desgracia no lo hace.
¿Alguien ve lo que me falta?
function is_subpage() {
global $post; // cargar detalles sobre esta página
if ( is_page() && $post->post_parent ) { // comprobar si la página tiene un padre
return true; // retornar verdadero, confirmando que hay un padre
} else { // no hay padre así que...
return false; // ...la respuesta a la pregunta es falso
}
}

Brian
814
Todas las respuestas a la pregunta
2
0
Tu función anterior prueba si una página es una página hija de alguna otra página, no si tiene hijos.
Puedes verificar si la página actual tiene hijos de la siguiente manera:
function has_children() {
global $post;
$children = get_pages( array( 'child_of' => $post->ID ) );
if( count( $children ) == 0 ) {
return false;
} else {
return true;
}
}
Lecturas adicionales:

Johannes Pille
11.1K
7 dic 2011 03:08:07
0
Aquí está la versión para cualquier tipo de publicación, en caso de que estés utilizando un tipo de publicación personalizado
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();
}

Dmitry Chuba
201
12 may 2016 21:18:00
Preguntas relacionadas
1
respuestas
2
respuestas
7
respuestas
2
respuestas