J'ai une page qui affiche un message au hasard tous les jours. Pour changer de poste toutes les 24 heures, j'utilise
set_transient('totd_trans_post_id', $totd[0]->ID, (60*60*24));
Ce que je me demande c'est ceci:
Le compte à rebours commence dès que le transitoire est créé ou mis à jour.
L'exécution de set_transient()
sur une valeur transitoire existante redémarrera l'horloge. Pour la page Codex sur set_transient()
:
Si un transitoire existe, cette fonction met à jour le délai d'expiration du transitoire.
Selon la page de l'API transitoire , le délai d'expiration correspond à la durée de vie maximale d'une valeur transitoire. Il peut être supprimé avant que le temps ne soit écoulé , mais il ne renverra jamais sa valeur une fois le temps écoulé:
Les transitoires peuvent expirer avant la date d'expiration $ (en raison de caches d'objets externes ou de mises à niveau de la base de données), mais ne renverront jamais leur valeur après la date d'expiration $.
Pour ajouter à la réponse de @ pat, il n'y a pas de compte à rebours , la valeur time représente la durée maximale pendant laquelle la valeur stockée sera prise en compte " frais ", et après ce temps il deviendra" fade "et ignoré. Il n'y a pas de compte à rebours actif ni de purge active du DB/de la mémoire. Cela peut sembler sémantique, mais cela peut devenir important si vous avez généré de nombreux transitoires, car ils ne se supprimeront pas automatiquement de la base de données.