Armazena resultados de queries caras em cache usando a API de Transients do WordPress.
function get_posts_em_destaque(): array {
$cache_key = 'posts_destaque';
$posts = get_transient($cache_key);
if ($posts === false) {
$posts = get_posts([
'post_type' => 'post',
'posts_per_page' => 5,
'meta_key' => '_destaque',
'meta_value' => '1',
]);
set_transient($cache_key, $posts, 12 * HOUR_IN_SECONDS);
}
return $posts ?: [];
}
// Invalidar cache ao salvar post
add_action('save_post', fn() => delete_transient('posts_destaque'));