From 633a9870ddec87282eab07b80d08ef64940509ed Mon Sep 17 00:00:00 2001 From: Gary Pendergast Date: Thu, 8 Oct 2015 05:56:57 +0000 Subject: [PATCH] Posts: Add the `pre_get_lastpostmodified` filter to `get_lastpostmodified()`. This allows `get_lastpostmodified()` to be short circuited when the site wants to avoid running the occasionally slow queries in `_get_last_post_time()`. Fixes #34205. git-svn-id: https://develop.svn.wordpress.org/trunk@34935 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/post-functions.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/wp-includes/post-functions.php b/src/wp-includes/post-functions.php index 6d5957b6c5..808e6d8bb6 100644 --- a/src/wp-includes/post-functions.php +++ b/src/wp-includes/post-functions.php @@ -5325,6 +5325,22 @@ function get_lastpostdate( $timezone = 'server', $post_type = 'any' ) { * @return string The timestamp. */ function get_lastpostmodified( $timezone = 'server', $post_type = 'any' ) { + /** + * Pre-filter the return value of get_lastpostmodified() before the query is run. + * + * @since 4.4.0 + * + * @param string $lastpostmodified Date the last post was modified. + * Returning anything other than false will short-circuit the function. + * @param string $timezone Location to use for getting the post modified date. + * See {@see get_lastpostdate()} for accepted `$timezone` values. + * @param string $post_type The post type to check. + */ + $lastpostmodified = apply_filters( 'pre_get_lastpostmodified', false, $timezone, $post_type ); + if ( false !== $lastpostmodified ) { + return $lastpostmodified; + } + $lastpostmodified = _get_last_post_time( $timezone, 'modified', $post_type ); $lastpostdate = get_lastpostdate($timezone);