Little hack in my submenu code:
function hierarchical_submenu($post) {
$top_post = $post;
// If the post has ancestors, get its ultimate parent and make that the top post
if ($post->post_parent && $post->ancestors) {
$top_post = get_post(end($post->ancestors));
}
// Always start traversing from the top of the tree
return hierarchical_submenu_get_children($top_post, $post);
}
function hierarchical_submenu_get_children($post, $current_page) {
$menu = '';
// Get all immediate children of this page
$children = get_pages('child_of=' . $post->ID . '&parent=' . $post->ID . '&sort_column=menu_order&sort_order=ASC');
if ($children) {
$menu = "\n<ul>\n";
foreach ($children as $child) {
// If the child is the viewed page or one of its ancestors, highlight it
if (in_array($child->ID, get_post_ancestors($current_page)) || ($child->ID == $current_page->ID)) {
$menu .= '<li class="active"><a href="' . get_permalink($child) . '" class="first-li active">' . $child->post_title . '</a>';
} else {
if (strcmp($child->post_title, " ")) {
$menu .= '<li><a href="' . get_permalink($child) . '">' . $child->post_title . '</a>';
}
}
// If the page has children and is the viewed page or one of its ancestors, get its children
if (get_children($child->ID) && (in_array($child->ID, get_post_ancestors($current_page)) || ($child->ID == $current_page->ID))) {
$menu .= hierarchical_submenu_get_children($child, $current_page);
}
$menu .= "</li>\n";
}
$menu .= "</ul>\n";
}
return $menu;
}
Added the
if (strcmp($child->post_title, " ")) {
$menu .= '<li><a href="' . get_permalink($child) . '">' . $child->post_title . '</a>';
}
If structure here.