wp_cache_set() / wp_cache_get() — Object Cache
Causa
Queries ao banco de dados repetidas dentro do mesmo request desperdiçam recursos. O object cache armazena resultados na memória RAM para acesso instantâneo.
Como resolver
Use wp_cache_get() para tentar recuperar do cache antes de fazer a query. Salve com wp_cache_set() definindo um grupo e tempo de expiração. Invalide com wp_cache_delete() ao atualizar dados.
PHP
<?php
function meu_plugin_get_config(string $chave): mixed
{
$grupo = 'meu_plugin_config';
$cache_key = 'config_' . sanitize_key($chave);
// Tenta recuperar do cache
$valor = wp_cache_get($cache_key, $grupo);
if ($valor !== false) {
return $valor;
}
// Cache miss: busca no banco
$valor = get_option('meu_plugin_' . $chave);
// Salva no cache por 1 hora
wp_cache_set($cache_key, $valor, $grupo, HOUR_IN_SECONDS);
return $valor;
}
// Invalidar ao atualizar
function meu_plugin_atualizar_config(string $chave, mixed $valor): void
{
update_option('meu_plugin_' . $chave, $valor);
// Remove do cache para forçar nova leitura
wp_cache_delete('config_' . sanitize_key($chave), 'meu_plugin_config');
}
// Para invalidar todo o grupo (requer Redis com suporte a grupos)
// wp_cache_delete_group('meu_plugin_config');