[wp-hackers] get_pages() include vs. hierarchical

Joe Maller joe at joemaller.com
Sat Oct 13 16:56:50 GMT 2007


I noticed something with get_pages() that some people might consider  
a bug.

When using only an include argument, the function won't return  
anything if the requested page is nested. This is because the  
function defaults to hierarchical display and won't return a child  
page unless that page's parent is also included.

The code snippets below are based on the following page structure:

ID 4  (top level page)
-- ID 14   (child page of ID 4)

ID 5 (another top level page)
-- ID 15 (child page of ID 5)


// returns page 4
get_pages('include=4');

// returns nothing
get_pages('include=14');

// returns pages 4 and 14:
get_pages('include=4,14');

// returns only page 4
get_pages('include=4,15');

// returns nothing
get_pages('include=14,15');

In all cases,  appending the 'hierarchical=0' argument returns all  
requested pages.

In my opinion, the expected behavior of a specifically requested set  
of pages should be to return all those pages if they exist. The  
get_pages() function already resets several other arguments if it  
gets an include list, should the default get_pages() behavior be  
modified to also set $hierarchical=0 when the include argument is non- 
empty?

At any rate, this behavior should be documented.

joe







More information about the wp-hackers mailing list