WordPress.org

Make WordPress Core

Opened 7 years ago

Closed 6 years ago

Last modified 6 years ago

#6510 closed defect (bug) (worksforme)

[2.5] wp_list_pages "exclude" arg no longer works as advertised

Reported by: lyzadanger Owned by: hailin
Milestone: Priority: normal
Severity: normal Version: 2.5
Component: General Keywords:
Focuses: Cc:

Description

[c'n'p'ed from a post I put in the support forums]

I just upgraded to WP 2.5.

I am building navigation on the front page of my client's site using wp_list_pages() with some excluded pages using the "exclude" parameter. This worked as expected in 2.3.x.

After the upgrade, the excluded pages are not showing up (expected), but all of their sub-pages are (definitely unexpected). Additionally, they are rendering as
LIs at the same level as the top-level pages (i.e. they are not in a sub-list (ul) so are impossible to style invisible as a workaround). The docs specifically say:

"Excluding a Page will also exclude all of its sub-pages from the list to be generated."

Thanks!

Change History (8)

comment:1 @hailin7 years ago

  • Owner changed from anonymous to hailin
  • Status changed from new to assigned

I will take a look.

comment:2 follow-up: @hailin7 years ago

This issue is caused by a statement ($rhierarchical? = 0)
in post-template.php.

I believe Ryan put there because he wanted to improve the performance of page listing.

post-template.php


Query pages.
$rhierarchical? = 0; <== caused the issue !!
$pages = get_pages($r);

We probably need to rethink about how to take advantage of the fact that new walker class no longer depends on pages being in certain order. (perhaps we don't need to store pages in options anymore, thus making import much faster).

comment:3 @lloydbudd7 years ago

  • Milestone changed from 2.7 to 2.6

comment:4 @Otto427 years ago

  • Resolution set to duplicate
  • Status changed from assigned to closed

Dupe of #6277

comment:5 @Otto427 years ago

  • Resolution duplicate deleted
  • Status changed from closed to reopened

Undo, my bad, this is not a dupe.

comment:6 in reply to: ↑ 2 @jamescollins7 years ago

Replying to hailin:

This issue is caused by a statement ($rhierarchical? = 0)
in post-template.php.

I believe Ryan put there because he wanted to improve the performance of page listing.

post-template.php


Query pages.
$rhierarchical? = 0; <== caused the issue !!
$pages = get_pages($r);

I can confirm that commenting out this line fixes the problem. This change was made in ticket #5458 (revision [6399]).

comment:7 @hailin6 years ago

  • Resolution set to worksforme
  • Status changed from reopened to closed

Discussed with Ryan befoer, it appears this little change is more or less intended,
and it does not have any significant effect. No more complaints heard since 2.6, and 2.7. So close it.

comment:8 @mrmist6 years ago

  • Milestone 2.9 deleted
Note: See TracTickets for help on using tickets.