Je travaille sur un site entièrement mis en cache par un CDN. Nous sommes sur le point de lancer des commentaires et modérerons chaque commentaire avant sa mise en ligne. Lorsque quelqu'un poste un commentaire et que la page est rendue avec un message indiquant que son commentaire est conservé avec modération. Ce que je ne veux pas, c’est que le CDN mette en cache cette page avec le message de modération. Que puis-je faire pour empêcher cela?
Idéalement, je serais capable de me connecter quelque part et de renvoyer l'URL contenant une chaîne de requête non mise en cache par notre CDN.
Deviner. Dans wp-comments-post.php, il existe un filtre appelé comment_post_redirect
que je vérifiais si le commentaire était approuvé, puis ajoutait une chaîne de requête à l'URL. Si facile.
//A query string needs to be added when redirecting back to the post after a comment is posted and not approved. This ensures the page with the "Your comment is awaiting moderation." message won't be cached by the CDN and seen by the rest of the world.
function add_query_string_to_comment_redirect($location, $comment) {
if( !$comment->comment_approved ) {
$location = add_query_arg( array( 'moderated' => '' ), $location);
}
return $location;
}
add_filter('comment_post_redirect', 'add_query_string_to_comment_redirect', 10, 2);