Opened 10 months ago
Last modified 4 months ago
#21267 new defect (bug)
Kill the serialization of $wp_filter in get_terms() — at Version 1
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | Future Release |
| Component: | Cache | Version: | |
| Severity: | normal | Keywords: | has-patch |
| Cc: |
Description (last modified by scribu)
We use this as part of a persistent cache key:
serialize($GLOBALS['wp_filter']['list_terms_exclusions'])`
See [8225].
This is not good for two reasons. First, well, it's a not fun to reach into our internal API like that. But worse, it's broken whenever an object method is used, because spl_object_hash() will be unique to that object, thus rendering the cache invalidated on the next pageload.
As an aside, we should probably have _wp_filter_build_unique_id() create a delimiter when dealing with a static class method — $function[0].$function[1] can conflict with a legitimate function name.
I'm not sure how this should be fixed.
Change History (1)
Note: See
TracTickets for help on using
tickets.

That looks incredibly hacky. Besides, closures are not serializable (you get a fatal error).