J'ai un ensemble transitoire pour une requête personnalisée. Il expire dans 30 jours. Mais j'ai aussi besoin que cela expire une fois qu'un nouvel article/une nouvelle page est publié. Pour que la nouvelle publication/page publiée soit disponible dans cette requête personnalisée. Comment supprimer un transitoire sur publication/page?
Comment je règle le transitoire:
// Get any existing copy of our transient data
if ( false === ( $query = get_transient('d_results') ) ) {
// It wasn't there, so regenerate the data and save the transient
$randargs = array("post_type"=>"", "orderby"=>"", "order"=>"", "posts_per_page"=>-1);
$query = new WP_Query($randargs);
set_transient( 'd_results', $query, DAY_IN_SECONDS * 30);
}
Je l’envisage pour la publication d’un nouveau post.
Ajoutez le code ci-dessous dans le fichier functions.php de votre thème actif.
function wpse_delete_query_transient( $post ) {
// Deletes the transient when a new post is published
delete_transient( 'd_results' );
}
add_action( 'new_to_publish', 'wpse_delete_query_transient' );
Cela supprimera le transitoire chaque fois qu'un nouveau message est publié.
si vous souhaitez supprimer les éléments transitoires lors de transitions d'état postérieures, vous voudrez peut-être examiner le codex