I have a menu that is currently shown with wp_list_pages( 'title_li=' ); This shows all the sub pages from all the pages in the menu.

I want to exclude a page with id 56 from displaying its sub items.

When I use wp_list_pages( 'exclude=56&title_li=' ); the menu becomes huge and all over the page. When I use wp_list_pages( 'exclude=56' ); the menu gets messed up (vertical instead of horizontal (no li) and all of them are displayed.

How can I fix this?

2 Answers 2


There's a filter called wp_list_pages_exclude that you could possibly hook into (put this in your functions.php):

function filter_wp_list_pages($exclude){
    $exclude[] = 56;
    return $exclude;

add_filter("wp_list_pages_excludes", "filter_wp_list_pages");

Try changing the exclude to exclude_tree, read more in the function parameters.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.