Make WordPress Core

Opened 13 years ago

Closed 7 years ago

#12538 closed defect (bug) (invalid)

WP should cache menus

Reported by: denis-de-bernardy's profile Denis-de-Bernardy Owned by:
Milestone: Priority: normal
Severity: normal Version: 3.0
Component: Menus Keywords: needs-patch
Focuses: performance Cc:

Description

There's a prime example of how to do this in the menu ticket (i.e. the plugin I attached in #11817).

Shouldn't we be doing this in WP as well?

It basically goes:

  • if it's a page, then try a post meta
  • if it's search/404 request, then try a transient
  • if it's anything else, then try a transient

The plugin also handles conditional flushing of the cache based on whether or not the permalink and/or the label changed.

Change History (13)

#1 @ptahdunbar
13 years ago

  • Cc ptahdunbar added
  • Component changed from General to Menus
  • Owner set to ryan

#2 @ptahdunbar
13 years ago

  • Resolution set to fixed
  • Status changed from new to closed

Fixed in r13704

#3 @nacin
13 years ago

  • Resolution fixed deleted
  • Status changed from closed to reopened

#4 follow-up: @scribu
13 years ago

  • Keywords close added

I'm not so sure this should go into core, the same way that widget caching isn't in core.

The only thing that's cached is RSS feeds, since we don't want to flood other sites.

Installing a plugin like WP Super Cache solves the caching problem for the entire page.

#5 @voyagerfan5761
13 years ago

  • Cc WordPress@… added

#6 @ryan
13 years ago

  • Milestone 3.0 deleted
  • Resolution set to wontfix
  • Status changed from reopened to closed

#7 in reply to: ↑ 4 @prettyboymp
11 years ago

  • Keywords close removed
  • Resolution wontfix deleted
  • Status changed from closed to reopened

Replying to scribu:

I'm not so sure this should go into core, the same way that widget caching isn't in core.

The only thing that's cached is RSS feeds, since we don't want to flood other sites.

Installing a plugin like WP Super Cache solves the caching problem for the entire page.

I think this needs to be revisited, even if it's just creating a way to allow a plugin to cache the wp_get_nav_menu_items() function. A simple menu that is only one level deep causes 3 extra queries.

Almost all core widgets have caching or use functions that have caching built in and WP Super Cache isn't a solution for sites that have a high percentage of logged in users.

#8 @SergeyBiryukov
11 years ago

  • Milestone set to Awaiting Review

#9 @mdawaffe
10 years ago

  • Keywords needs-patch added

#10 @ryan
9 years ago

  • Owner ryan deleted
  • Status changed from reopened to assigned

#11 @chriscct7
7 years ago

  • Focuses performance added

This ticket was mentioned in Slack in #core by peterwilsoncc. View the logs.


7 years ago

#13 @peterwilsoncc
7 years ago

  • Milestone Awaiting Review deleted
  • Resolution set to invalid
  • Status changed from assigned to closed

Core appears to have changed around this code since the last substantive update. Doesn't appear to remain valid.

Note: See TracTickets for help on using tickets.