Title: WP_Term_Query::generate_cache_key
Published: March 29, 2023
Last modified: February 24, 2026

---

# WP_Term_Query::generate_cache_key( array $args, string $sql ): string

## In this article

 * [Parameters](https://developer.wordpress.org/reference/classes/wp_term_query/generate_cache_key/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/classes/wp_term_query/generate_cache_key/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/wp_term_query/generate_cache_key/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/wp_term_query/generate_cache_key/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wp_term_query/generate_cache_key/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wp_term_query/generate_cache_key/?output_format=md#wp--skip-link--target)

Generate cache key.

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wp_term_query/generate_cache_key/?output_format=md#parameters)󠁿

 `$args`arrayrequired

[WP_Term_Query](https://developer.wordpress.org/reference/classes/wp_term_query/)
arguments.

`$sql`stringrequired

SQL statement.

## 󠀁[Return](https://developer.wordpress.org/reference/classes/wp_term_query/generate_cache_key/?output_format=md#return)󠁿

 string Cache key.

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wp_term_query/generate_cache_key/?output_format=md#source)󠁿

    ```php
    protected function generate_cache_key( array $args, $sql ) {
    	global $wpdb;
    	// $args can be anything. Only use the args defined in defaults to compute the key.
    	$cache_args = wp_array_slice_assoc( $args, array_keys( $this->query_var_defaults ) );

    	unset( $cache_args['cache_results'], $cache_args['update_term_meta_cache'] );

    	if ( 'count' !== $args['fields'] && 'all_with_object_id' !== $args['fields'] ) {
    		$cache_args['fields'] = 'all';
    	}

    	// Replace wpdb placeholder in the SQL statement used by the cache key.
    	$sql = $wpdb->remove_placeholder_escape( $sql );

    	$key = md5( serialize( $cache_args ) . $sql );

    	return "get_terms:$key";
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/class-wp-term-query.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-includes/class-wp-term-query.php#L1162)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/class-wp-term-query.php#L1162-L1179)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wp_term_query/generate_cache_key/?output_format=md#related)󠁿

| Uses | Description | 
| [wpdb::remove_placeholder_escape()](https://developer.wordpress.org/reference/classes/wpdb/remove_placeholder_escape/)`wp-includes/class-wpdb.php` |

Removes the placeholder escape strings from a query.

  | 
| [wp_array_slice_assoc()](https://developer.wordpress.org/reference/functions/wp_array_slice_assoc/)`wp-includes/functions.php` |

Extracts a slice of an array, given a list of keys.

  |

| Used by | Description | 
| [WP_Term_Query::get_terms()](https://developer.wordpress.org/reference/classes/wp_term_query/get_terms/)`wp-includes/class-wp-term-query.php` |

Retrieves the query results.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wp_term_query/generate_cache_key/?output_format=md#changelog)󠁿

| Version | Description | 
| [6.2.0](https://developer.wordpress.org/reference/since/6.2.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_term_query%2Fgenerate_cache_key%2F)
before being able to contribute a note or feedback.