Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion src/wp-includes/class-wp-comment-query.php
Original file line number Diff line number Diff line change
Expand Up @@ -449,7 +449,10 @@ public function get_comments() {
unset( $_args['fields'], $_args['update_comment_meta_cache'], $_args['update_comment_post_cache'] );

$key = md5( serialize( $_args ) );
$last_changed = wp_cache_get_last_changed( 'comment' );
$last_changed = (array) wp_cache_get_last_changed( 'comment' );
if ( ! empty( $this->meta_query->queries ) ) {
$last_changed[] = wp_cache_get_last_changed( 'comment-meta' );
}

$cache_key = "get_comments:$key";
$cache_value = wp_cache_get_salted( $cache_key, 'comment-queries', $last_changed );
Expand Down
3 changes: 3 additions & 0 deletions src/wp-includes/class-wp-query.php
Original file line number Diff line number Diff line change
Expand Up @@ -3249,6 +3249,9 @@ public function get_posts() {
if ( ! empty( $this->tax_query->queries ) ) {
$last_changed[] = wp_cache_get_last_changed( 'terms' );
}
if ( ! empty( $this->meta_query->queries ) ) {
$last_changed[] = wp_cache_get_last_changed( 'posts-meta' );
}

if ( $query_vars['cache_results'] && $id_query_is_cacheable ) {
$new_request = str_replace( $fields, "{$wpdb->posts}.*", $this->request );
Expand Down
5 changes: 4 additions & 1 deletion src/wp-includes/class-wp-site-query.php
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,10 @@ public function get_sites() {
unset( $_args['fields'], $_args['update_site_cache'], $_args['update_site_meta_cache'] );

$key = md5( serialize( $_args ) );
$last_changed = wp_cache_get_last_changed( 'sites' );
$last_changed = (array) wp_cache_get_last_changed( 'sites' );
if ( ! empty( $this->meta_query->queries ) ) {
$last_changed[] = wp_cache_get_last_changed( 'sites-meta' );
}

$cache_key = "get_sites:$key";
$cache_value = wp_cache_get_salted( $cache_key, 'site-queries', $last_changed );
Expand Down
5 changes: 4 additions & 1 deletion src/wp-includes/class-wp-term-query.php
Original file line number Diff line number Diff line change
Expand Up @@ -775,7 +775,10 @@ public function get_terms() {

if ( $args['cache_results'] ) {
$cache_key = $this->generate_cache_key( $args, $this->request );
$last_changed = wp_cache_get_last_changed( 'terms' );
$last_changed = (array) wp_cache_get_last_changed( 'terms' );
if ( ! empty( $this->meta_query->queries ) ) {
$last_changed[] = wp_cache_get_last_changed( 'terms-meta' );
}
$cache = wp_cache_get_salted( $cache_key, 'term-queries', $last_changed );

if ( false !== $cache ) {
Expand Down
4 changes: 4 additions & 0 deletions src/wp-includes/class-wp-user-query.php
Original file line number Diff line number Diff line change
Expand Up @@ -1071,6 +1071,10 @@ protected function generate_cache_key( array $deprecated, $sql ) {
protected function get_cache_last_changed( array $args ) {
$last_changed = (array) wp_cache_get_last_changed( 'users' );

if ( ! empty( $this->meta_query->queries ) ) {
$last_changed[] = wp_cache_get_last_changed( 'users-meta' );
}

if ( empty( $args['orderby'] ) ) {
// Default order is by 'user_login'.
$ordersby = array( 'user_login' => '' );
Expand Down
12 changes: 12 additions & 0 deletions src/wp-includes/comment.php
Original file line number Diff line number Diff line change
Expand Up @@ -4071,6 +4071,18 @@ function wp_cache_set_comments_last_changed() {
wp_cache_set_last_changed( 'comment' );
}

/**
* Sets the last changed time for the 'comment-meta' cache group.
*
* This is used to invalidate comment query caches that include meta queries,
* without affecting query caches for queries that do not use meta.
*
* @since x.x.x
*/
function wp_cache_set_comments_meta_last_changed() {
wp_cache_set_last_changed( 'comment-meta' );
}

/**
* Updates the comment type for a batch of comments.
*
Expand Down
24 changes: 12 additions & 12 deletions src/wp-includes/default-filters.php
Original file line number Diff line number Diff line change
Expand Up @@ -122,22 +122,22 @@
}

// Post meta.
add_action( 'added_post_meta', 'wp_cache_set_posts_last_changed' );
add_action( 'updated_post_meta', 'wp_cache_set_posts_last_changed' );
add_action( 'deleted_post_meta', 'wp_cache_set_posts_last_changed' );
add_action( 'added_post_meta', 'wp_cache_set_posts_meta_last_changed' );
add_action( 'updated_post_meta', 'wp_cache_set_posts_meta_last_changed' );
add_action( 'deleted_post_meta', 'wp_cache_set_posts_meta_last_changed' );

// User meta.
add_action( 'added_user_meta', 'wp_cache_set_users_last_changed' );
add_action( 'updated_user_meta', 'wp_cache_set_users_last_changed' );
add_action( 'deleted_user_meta', 'wp_cache_set_users_last_changed' );
add_action( 'added_user_meta', 'wp_cache_set_users_meta_last_changed' );
add_action( 'updated_user_meta', 'wp_cache_set_users_meta_last_changed' );
add_action( 'deleted_user_meta', 'wp_cache_set_users_meta_last_changed' );
add_action( 'add_user_role', 'wp_cache_set_users_last_changed' );
add_action( 'set_user_role', 'wp_cache_set_users_last_changed' );
add_action( 'remove_user_role', 'wp_cache_set_users_last_changed' );

// Term meta.
add_action( 'added_term_meta', 'wp_cache_set_terms_last_changed' );
add_action( 'updated_term_meta', 'wp_cache_set_terms_last_changed' );
add_action( 'deleted_term_meta', 'wp_cache_set_terms_last_changed' );
add_action( 'added_term_meta', 'wp_cache_set_terms_meta_last_changed' );
add_action( 'updated_term_meta', 'wp_cache_set_terms_meta_last_changed' );
add_action( 'deleted_term_meta', 'wp_cache_set_terms_meta_last_changed' );
add_filter( 'get_term_metadata', 'wp_check_term_meta_support_prefilter' );
add_filter( 'add_term_metadata', 'wp_check_term_meta_support_prefilter' );
add_filter( 'update_term_metadata', 'wp_check_term_meta_support_prefilter' );
Expand All @@ -148,9 +148,9 @@
add_filter( 'update_term_metadata_cache', 'wp_check_term_meta_support_prefilter' );

// Comment meta.
add_action( 'added_comment_meta', 'wp_cache_set_comments_last_changed' );
add_action( 'updated_comment_meta', 'wp_cache_set_comments_last_changed' );
add_action( 'deleted_comment_meta', 'wp_cache_set_comments_last_changed' );
add_action( 'added_comment_meta', 'wp_cache_set_comments_meta_last_changed' );
add_action( 'updated_comment_meta', 'wp_cache_set_comments_meta_last_changed' );
add_action( 'deleted_comment_meta', 'wp_cache_set_comments_meta_last_changed' );
add_action( 'init', 'wp_create_initial_comment_meta' );

// Places to balance tags on input.
Expand Down
6 changes: 3 additions & 3 deletions src/wp-includes/ms-default-filters.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@
add_action( 'update_blog_public', 'wp_update_blog_public_option_on_site_update', 1, 2 );

// Site meta.
add_action( 'added_blog_meta', 'wp_cache_set_sites_last_changed' );
add_action( 'updated_blog_meta', 'wp_cache_set_sites_last_changed' );
add_action( 'deleted_blog_meta', 'wp_cache_set_sites_last_changed' );
add_action( 'added_blog_meta', 'wp_cache_set_sites_meta_last_changed' );
add_action( 'updated_blog_meta', 'wp_cache_set_sites_meta_last_changed' );
add_action( 'deleted_blog_meta', 'wp_cache_set_sites_meta_last_changed' );
add_filter( 'get_blog_metadata', 'wp_check_site_meta_support_prefilter' );
add_filter( 'add_blog_metadata', 'wp_check_site_meta_support_prefilter' );
add_filter( 'update_blog_metadata', 'wp_check_site_meta_support_prefilter' );
Expand Down
12 changes: 12 additions & 0 deletions src/wp-includes/ms-site.php
Original file line number Diff line number Diff line change
Expand Up @@ -1320,6 +1320,18 @@ function wp_cache_set_sites_last_changed() {
wp_cache_set_last_changed( 'sites' );
}

/**
* Sets the last changed time for the 'sites-meta' cache group.
*
* This is used to invalidate site query caches that include meta queries,
* without affecting query caches for queries that do not use meta.
*
* @since x.x.x
*/
function wp_cache_set_sites_meta_last_changed() {
wp_cache_set_last_changed( 'sites-meta' );
}

/**
* Aborts calls to site meta if it is not supported.
*
Expand Down
12 changes: 12 additions & 0 deletions src/wp-includes/post.php
Original file line number Diff line number Diff line change
Expand Up @@ -8450,6 +8450,18 @@ function wp_cache_set_posts_last_changed() {
wp_cache_set_last_changed( 'posts' );
}

/**
* Sets the last changed time for the 'posts-meta' cache group.
*
* This is used to invalidate post query caches that include meta queries,
* without affecting query caches for queries that do not use meta.
*
* @since x.x.x
*/
function wp_cache_set_posts_meta_last_changed() {
wp_cache_set_last_changed( 'posts-meta' );
}

/**
* Gets all available post MIME types for a given post type.
*
Expand Down
12 changes: 12 additions & 0 deletions src/wp-includes/taxonomy.php
Original file line number Diff line number Diff line change
Expand Up @@ -5142,6 +5142,18 @@ function wp_cache_set_terms_last_changed() {
wp_cache_set_last_changed( 'terms' );
}

/**
* Sets the last changed time for the 'terms-meta' cache group.
*
* This is used to invalidate term query caches that include meta queries,
* without affecting query caches for queries that do not use meta.
*
* @since x.x.x
*/
function wp_cache_set_terms_meta_last_changed() {
wp_cache_set_last_changed( 'terms-meta' );
}

/**
* Aborts calls to term meta if it is not supported.
*
Expand Down
12 changes: 12 additions & 0 deletions src/wp-includes/user.php
Original file line number Diff line number Diff line change
Expand Up @@ -5239,6 +5239,18 @@ function wp_cache_set_users_last_changed() {
wp_cache_set_last_changed( 'users' );
}

/**
* Sets the last changed time for the 'users-meta' cache group.
*
* This is used to invalidate user query caches that include meta queries,
* without affecting query caches for queries that do not use meta.
*
* @since x.x.x
*/
function wp_cache_set_users_meta_last_changed() {
wp_cache_set_last_changed( 'users-meta' );
}

/**
* Checks if password reset is allowed for a specific user.
*
Expand Down
Loading
Loading