public function set_cache($key, $value, $group = self::CACHEGROUP, $expires = 0, $cache_mode = self::CACHE_USE_DEFAULT)
{
$object_cache = false;
if (isset($GLOBALS['wp_object_cache']) && is_object($GLOBALS['wp_object_cache'])) {
$object_cache = true;
}
if ((int) $expires < 1) {
$expires = 0;
}
$cache_mode = self::_get_cache_mode($cache_mode);
$trans_key = substr($group . '_' . $key, 0, self::TRANS_KEY_LEN);
if (self::CACHE_TRANSIENT === $cache_mode) {
set_transient($trans_key, $value, $expires);
} elseif (self::CACHE_SITE_TRANSIENT === $cache_mode) {
set_site_transient($trans_key, $value, $expires);
} elseif (self::CACHE_OBJECT === $cache_mode && $object_cache) {
wp_cache_set($key, $value, $group, $expires);
}
return $value;
}