J'utilise fetch_feed () pour mettre en cache des sources RSS externes affichées dans un widget. au cas où le widget (ou, plus probablement, l'ensemble du plugin) est supprimé/désactivé, je souhaite supprimer manuellement tous les transitoires associés.
Dans , class-feed.php $ nom_fichier est transmis au constructeur de WP_Feed_Cache_Transient {}, qui gère évidemment les transitoires pour fetch_feed. Je n'ai juste pas compris comment la variable est générée pour la stocker avec les widgets pour des actions de suppression ultérieures.
Ces données doivent être automatiquement supprimées après 12 heures , c'est la durée de vie par défaut du cache de flux.
Donc, ce genre de ménage, pour les données ajoutées par le API transitoires de WordPress , pourrait être inutile.
Mais vérifions quel type de données est stocké.
Si vous prenez par exemple le fil de votre question actuelle:
http://wordpress.stackexchange.com/feeds/question/172444
et le chercher avec:
$feed = fetch_feed( 'http://wordpress.stackexchange.com/feeds/question/172444' );
vous obtiendrez alors 4 lignes dans la table wp_options
:
_transient_feed_mod_89d724e05be3479dcbee0fd481470c97
_transient_timeout_feed_mod_89d724e05be3479dcbee0fd481470c97
_transient_feed_89d724e05be3479dcbee0fd481470c97
_transient_timeout_feed_89d724e05be3479dcbee0fd481
Les lignes _transient_timeout_*
sont automatiquement ajoutées par WordPress pour savoir quand supprimer les éléments transitoires.
Remarquerez que:
echo $md5_of_feed_url = md5( 'http://wordpress.stackexchange.com/feeds/question/172444' );
est
89d724e05be3479dcbee0fd481470c97
Vous devez donc connaître le md5 de l'URL du flux , pour supprimer ces données avec le delete_transient()
function:
delete_transient( 'feed_' . $md5_of_feed_url );
delete_transient( 'feed_mod_' . $md5_of_feed_url );