Make WordPress Core

Opened 6 years ago

Last modified 3 weeks ago

#10230 assigned defect (bug)

get_pages function: number and child_of parameters conflict — at Version 10

Reported by: ortsaipekim Owned by: ryan
Milestone: Future Release Priority: normal
Severity: normal Version: 2.8
Component: Posts, Post Types Keywords: has-patch needs-testing needs-refresh
Focuses: template Cc:

Description (last modified by SergeyBiryukov)

Passing both number and child_of parameters to get_pages will produce nonsensical results.

Within the function number is used first to limit the number of results, then child_of is used to establish results within a certain hierarchical scope.

So with a structure of:

Parent 1 
Parent 2
Parent 3
   Child 1
   Child 2 
   Child 3

passing a number=2 and child_of=(parent 3 id) will not give the expected output. In this case, the result will first be limited to only include:

Parent 1 
Parent 2

so the child_of will be ignored. To produce a more logical result, child_of should be evaluated first, then number should be evaluated to limit the result set.

Change History (11)

comment:1 @ortsaipekim6 years ago

I meant to demonstrate the heirarchy as the following:

Parent 1
Parent 2
Parent 3

Child 1
Child 2
Child 3

comment:2 @Denis-de-Bernardy6 years ago

  • Component changed from General to Query
  • Milestone changed from 2.8.1 to 2.9
  • Owner set to ryan

@arakeis6 years ago

comment:3 @arakeis6 years ago

  • Keywords has-patch added

comment:4 @arakeis6 years ago

the proposed patch passes the number argument to the get_children function and prevents get_pages from limit(ing) the result from the query.
works fine on one of my client's site.

comment:5 @arakeis6 years ago

  • Cc arakeis added

comment:6 @ryan6 years ago

  • Milestone changed from 2.9 to 3.0

comment:7 @JoshSalverda6 years ago

A quick fix for this is to pass in the "parent={parent_id}" along with all your other arguments. Obviously not a fix for the bug but if you need this sort of functionality then it will work for now.

comment:8 @dd326 years ago

  • Keywords needs-testing added; get_pages wp_list_pages removed
  • Milestone changed from 3.0 to Future Release

Bumping to Future release due to limited traction.

This also needs testing to ensure it doesn't break on complex queries involving children and offset/number

comment:9 @SergeyBiryukov3 years ago

  • Component changed from Query to Template

Closed #10745 as a duplicate.

comment:10 @SergeyBiryukov3 years ago

  • Description modified (diff)
Note: See TracTickets for help on using tickets.