Muchas veces necesitamos utilizar WordPress como un CMS, para eso es necesario tener jerarquia de páginas y menús acordes.

El siguiente código, dada una página cualquiera, si la misma tiene subpáginas, muestra las mismas. En caso de no tener subpáginas, muestra las subpáginas de la página superior (es decir que se incluye a si misma).

CORRECCIÓN: En una implementación de WP que teniamos, nos encontramos con un error, el get_pages siempre devolvía algo. Entonces si una page no tenia hijos, no se ejecutaba el ELSE.

Modificamos el get_pages, comentada queda la línea anterior.

<ul>

<?php // CORRECCION $pagekids = get_pages(“child_of=”.$post->ID.”&sort_column=menu_order”);

$pagekids = get_pages(“child_of=”.$post->ID.”&hierarchical=0&parent=”.$post->ID);
if ($pagekids) { ?>
<?php wp_list_pages(‘title_li=&child_of=’.$post->ID.”&sort_column=menu_order&depth=1″); ?>
<?php } else {?>
<?php wp_list_pages(‘title_li=&child_of=’.$post->post_parent.”&sort_column=menu_order&depth=1″); ?>
<?php } ?>
</ul>
</li>
<?php } ?>

</ul>