php - todos - ¿Verifica si una página es un padre o si es una página secundaria?
que hacer cuando alguien se mete en tu relacion (3)
¿Es posible verificar si una página es padre o si es una página secundaria?
Tengo mis páginas configuradas así:
- Padre
---- Child página 1
---- Child página 2
etc.
Quiero mostrar un cierto menú si es una página principal y un menú diferente si está en la página secundaria.
Sé que puedo hacer algo como a continuación, pero quiero hacerlo un poco más dinámico sin incluir ID de página específicos.
<?php
if ($post->post_parent == ''100'') { // if current page is child of page with page ID 100
// show image X
}
?>
Puedes probar si la publicación es una subpágina como esta:
* (desde http://codex.wordpress.org/Conditional_Tags ) *
<?php
global $post; // if outside the loop
if ( is_page() && $post->post_parent ) {
// This is a subpage
} else {
// This is not a subpage
}
?>
Coloque esta función en el archivo functions.php de su tema.
function is_page_child($pid) {// $pid = The ID of the page we''re looking for pages underneath
global $post; // load details about this page
$anc = get_post_ancestors( $post->ID );
foreach($anc as $ancestor) {
if(is_page() && $ancestor == $pid) {
return true;
}
}
if(is_page()&&(is_page($pid)))
return true; // we''re at the page or at a sub page
else
return false; // we''re elsewhere
};
Entonces puedes usarlo:
<?php
if(is_page_child(100)) {
// show image X
}
?>
Sé que esta es una vieja pregunta, pero estaba buscando esta misma pregunta y no pude encontrar una respuesta clara y simple hasta que se me ocurrió esta. Mi respuesta no responde a su explicación, pero responde a la pregunta principal, que es lo que estaba buscando.
Esto comprueba si una página es hija o padre y le permite mostrar, por ejemplo, un menú de la barra lateral, solo en páginas que son un hijo o un padre y no en páginas que no tienen un padre ni hijos.
<?php
global $post;
$children = get_pages( array( ''child_of'' => $post->ID ) );
if ( is_page() && ($post->post_parent || count( $children ) > 0 )) :
?>