web-dev-qa-db-fra.com

Comment supprimer un transitoire sur publication/page?

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);
   }
3
gdaniel

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

2
Maruti Mohanty