Opened 3 years ago

Last modified 3 years ago

#12945 accepted defect (bug)

Constrain wp_page_menu()

Reported by: technosailor Owned by: technosailor
Priority: normal Milestone: Future Release
Component: General Version:
Severity: normal Keywords: needs-feedback
Cc: dkikizas@…, technosailor

Description

The wp_page_menu() function is the default callback for wp_nav_menu(). IOW, when a user is not using the new menu system, it defaults to this function. While that is good, any number of pages over, say 10, will make a theme puke in many cases.

As a workaround, I suggest we make a default of wp_page_menu() to exclude all pages() except home. It's a stupid idea, I think, but something needs to be done to make this manageable so I'm looking for feedback.

The Pro of taking this approach is that it encourages customization of menus via the WP menu system. It also does not lock theme devs into a particular approach because this stuff can be overidden via arguments and filters.

The con is that the default callback becomes pretty benign and useless. Almost pointless.

Ideas?

Attachments (5)

12945.diff (2.1 KB) - added by technosailor 3 years ago.
This should be considered for 3.1, not 3.0, as it modifies the get_pages() function and adds a new include_full argument where, if true, returns an array of postdata and if false returns an array of IDs
12945-2.diff (2.1 KB) - added by technosailor 3 years ago.
12945-3.diff (2.1 KB) - added by technosailor 3 years ago.
Follows the style of get_terms()
12945-4.diff (2.0 KB) - added by technosailor 3 years ago.
12945-5.diff (2.2 KB) - added by technosailor 3 years ago.
Saves a query if a user passes in an exclude array

Download all attachments as: .zip

Change History (9)

+1 to limiting by default in some way.

  • Cc dkikizas@… added
  • Milestone changed from Unassigned to Future Release
  • Owner set to technosailor
  • Status changed from new to accepted
  • Version 3.0 deleted
  • Cc technosailor added

This should be considered for 3.1, not 3.0, as it modifies the get_pages() function and adds a new include_full argument where, if true, returns an array of postdata and if false returns an array of IDs

Follows the style of get_terms()

Saves a query if a user passes in an exclude array

Note: See TracTickets for help on using tickets.