WP_Object_Cache::set()publicWP 2.0.0

Sets the data contents into the cache.

The cache contents are grouped by the $group parameter followed by the $key. This allows for duplicate IDs in unique groups. Therefore, naming of the group should be used with care and should follow normal function naming guidelines outside of core WordPress usage.

The $expire parameter is not used, because the cache will automatically expire for each time a page is accessed and PHP finishes. The method is more for cache plugins which use files.

Method of the class: WP_Object_Cache{}

No Hooks.


true|false. True if contents were set, false if key is invalid.


$WP_Object_Cache = new WP_Object_Cache();
$WP_Object_Cache->set( $key, $data, $group, $expire );
$key(int|string) (required)
What to call the contents in the cache.
$data(mixed) (required)
The contents to store in the cache.
Where to group the cache contents.
Default: 'default'
Not used.


Since 2.0.0 Introduced.
Since 6.1.0 Returns false if cache key is invalid.

WP_Object_Cache::set() code WP 6.5.4

public function set( $key, $data, $group = 'default', $expire = 0 ) {
	if ( ! $this->is_valid_key( $key ) ) {
		return false;

	if ( empty( $group ) ) {
		$group = 'default';

	if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) ) {
		$key = $this->blog_prefix . $key;

	if ( is_object( $data ) ) {
		$data = clone $data;

	$this->cache[ $group ][ $key ] = $data;
	return true;