Cea mai bună practică pentru stocarea datelor agregate după dată sau alte criterii
Am creat descrieri rezumative pe ani. Pentru a face acest lucru, folosesc update_post_meta
la salvare pentru a seta valori pentru numărul de cuvinte, numărul de imagini, numărul de link-uri externe.
Deci, pentru o pagină de arhivă pe ani, parcurg fiecare articol pentru a crea sume și apoi formaterez rezultatul.
Cu cache-ul activat, pot fi sigur că servesc utilizatorilor rezultate din cache.
Dar în timpul dezvoltării, cu cache-ul activat, observ încetinirea.
M-am gândit să folosesc un mecanism de tip cron pentru a crea rezumatele HTML într-un subdirector al folderului wp-content
sau ca elemente wp_object_cache
cu nume precum summary-YYYY.html
pentru rezumat sau summary-YYYY.json
.
Întrebarea mea:
Care sunt opțiunile mele pentru stocarea unor astfel de date? Există bune practici pentru denumirea cheilor în cache-ul de obiecte? Există alte modalități de a asocia date arbitrare cu un an?

Am decis să folosesc wp_cache_set
și wp_cache_get
care par să funcționeze bine. Creez o cheie bazată pe clasă, funcție și parametri:
$cacheKey = self::createCacheKey( __CLASS__, __FUNCTION__, $referenceYear, $referenceMonth );
createCacheKey()
arată astfel:
protected static function createCacheKey( ...$args ): string {
return implode('-', $args);
}
Și am grijă să folosesc o expirare adecvată. Pentru datele care nu sunt din anul sau luna curentă am setat perioade mai lung de expirare.
Obținerea și returnarea cache-ului arată astfel la începutul unei funcții:
$cacheKey = self::createCacheKey( __CLASS__,
__FUNCTION__,
$referenceYear,
$referenceMonth );
$cache = wp_cache_get( $cacheKey, self::CACHE_GROUP );
if ( $cache ) {
return $cache;
}
Iar la sfârșitul acestor funcții folosesc:
wp_cache_set( $cacheKey, $output,
self::CACHE_GROUP, $cacheExpiration );
Se pare că face ceea ce doresc și îmbunătățește performanța, deși locul implicit unde sunt stocate lucrurile și cât de fiabil este acest lucru depinde de configurația serverului.
